1 2 3 4 5 6 L

Page Header > Subtitle

[Node.js] node.js memcached_guide

let ipConfig = {ip : "172.30.1.114",port : "11211"},
	Memcached = require('memcached'), //<a href="http://www.npmjs.com/package/memcached" target="_blank">http://www.npmjs.com/package/memcached</a>
	request = require('request'),  //<a href="http://www.npmjs.com/package/request" target="_blank">http://www.npmjs.com/package/request</a>
	memcached = new Memcached(`${ipConfig.ip}:${ipConfig.port}`);
 
//init
	function cbHandler(opt,...args){
		if(typeof opt === "object" && typeof opt.callback === "function"){
			opt.callback.apply(opt.self || this,args);
		}
	};
	function getRestUserInfo(uid,salt,cb){
		request(`<a href="http://nas.thewdog.com/api/user?uid=" target="_blank">http://nas.thewdog.com/api/user?uid=</a>${uid}&salt=${salt}`,function(err,res,data){
            if (!err && res.statusCode === 200) {
                cbHandler({callback : cb},data);
            }
        });
	};
	function getCachedData(uid,salt,cb) {
		memcached.get(`user_${uid}`,function(err,data){
			if (!err && data !== undefined) {
				data = (typeof data === "string") ? JSON.parse(data) : "";
				if (data instanceof Object && data.userid === uid && data.salt == salt) {
					//로그인 완료시
					cbHandler({callback : cb},data);
				}
				else if(data instanceof Object && data.userid === uid && data.salt !== salt){
					//다른곳에서 먼저로그인 했을경우에
					cbHandler({callback : cb},data);
				}
				else{
					//memcached의 키값을 찾을수 없음
					cbHandler({callback : cb},data);
				}
			}
			else if(err){
				getRestUserInfo(uid,salt,cb);
			}
		})
	};
 
	let MaxUid = '<a href="mailto:lsy5718zzang@naver.com">lsy5718zzang@naver.com</a>', //사이트에 들어가서 변수명과 같은이름의 쿠키값을 로그인후 추출
		MaxSalt = 'bec6e05c11338cb24bd8a01618f0aba8';//이것도 마찬가지
	getCachedData(MaxUid,MaxSalt,function(data){
		console.log(data);
		/*
		{
			idx: '9',
			userid: '<a href="mailto:lsy5718zzang@naver.com">lsy5718zzang@naver.com</a>',
			email: '<a href="mailto:lsy5718zzang@naver.com">lsy5718zzang@naver.com</a>',
			name: '',
			nick: 'tymktuk',
			level: '11',
			salt: 'bec6e05c11338cb24bd8a01618f0aba8'
		}
		*/
	})
 

0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기
captcha
자동등록방지 숫자입력

JS/Node.js

번호 제목 글쓴이 날짜 조회수
39 javascript [javascript] async, await를 사용하여 비동기 javascript를 동기식으로 만들자 미도어묵 02-18 1,022
38 javascript JavaScript 합집합, 교집합, 차집합, 대칭차 미도어묵 11-23 1,270
37 javascript jQuery 플러그인 부트스트랩의 콤포넌트(modal) 미도어묵 10-04 1,132
36 javascript Javascript 숫자에 천단위로 콤마(,) 찍기 미도어묵 08-20 791
35 javascript 함수형 프로그래밍 - 함수형으로 전환 미도어묵 08-09 857
34 Node.js nodejs & api call example 미도어묵 06-25 815
33 javascript jQuery 핸드폰 번호 체크하기 미도어묵 06-25 844
32 Node.js Node.js 업그레이드 미도어묵 04-23 762
31 Node.js node.js cross 도메인 header 처리 미도어묵 03-12 804
30 javascript hls.js 및 데모 미도어묵 02-22 796
29 Node.js node.js memcached_guide 미도어묵 01-02 800
28 Node.js clustering node + socket.io + redis 사용법 미도어묵 09-29 1,597
27 javascript script sample 예제 관리자 09-20 819
26 Node.js 커넥션 연결 확인 관리자 09-01 755
25 javascript [문법] [TypeScript] Electron + Vue.js 예제 관리자 07-24 1,083
24 javascript 웹 풀스택 입문을 위한 약 500페이지 분량의 교재 관리자 07-11 904
23 javascript [TypeScript] 타입스크립트 기초 세미나 자료 관리자 06-10 877
22 javascript javascript 함수 지향 관리자 04-08 788
21 Node.js Node.js 로 웹 사이트 데이터 가져오기 관리자 04-06 827
20 Node.js [MongoDB] Application / Mongoose를 이용하여 간단한 채팅 프로그램 개발 관리자 03-30 878