소수전공 6회차) Joi를 활용해 로그인 규칙 정하기, LOL api로 request 해보기
2017. 12. 21. 21:29ㆍ프로그래밍(주력)/JAVASCRIPT
request를 활용해
소환사 이름을 가지고 정보를 가져오는 코드
r.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | const request = require('request'); const qs = require('querystring'); // request.post( // { url : 'http://127.0.0.1:4321/api/user', // form: {userId : 'blgada12', userPw: '12321232'}, // }, // (err, res, body) => { // console.log(err); // console.log(body); // }); let url = "https://kr.api.riotgames.com"; let apiKey = "RGAPI-e07c6125-1c2e-407d-a853-7d8772e35335"; let apiAuth = {'X-Riot-Token': apiKey}; let accountId = 207625593; request.get({ url: url + '/lol/summoner/v3/summoners/by-name/'+qs.escape('타릭장인 로리콘')+'?api_key='+apiKey, }, (err, res, body) => { console.log(err, body); }) request.get({ url: url + '/lol/match/v3/matchlists/by-account/'+accountId+'?api_key='+apiKey, }, (err, res, body) => { console.log(err, body); }) | cs |
Joi.string().min(4).max(16).required(), => 최소 4글자 최대 16글자
userController.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | const Joi = require('joi'); const model = { user: require('./userModel'), } let validater = (scheme, prop = 'body', opt={}) => { return(req, res, next) => { Joi.validate(req[prop], scheme, (err, data) => { if (err) { next(err); }else { req[prop] = data; next(); } }); }; }; exports.checkSession = (req, res) => { console.log(req.user); if (req.user) { res.send('SESSION CHECKED'); } else { res.send('SESSION NOT DEFINED'); } } exports.validate_login = validater({ userId: Joi.string().min(4).max(16).required(), userPw: Joi.string().min(8).max(64).required(), name: Joi.string().min(2).max(16).required().when('userId', { 'is': Joi.string().max(3), 'then': Joi.optional(), }) }) exports.login = (req, res) => { console.log("ASD"); res.send(200, { success: true, message: 'Authentication success!', }); } exports.logout = (req, res) => { if (req.user) { req.logout() console.log(req.user); res.send('SESSION DELETED'); } else { res.send('SESSION NOT DEFINED'); } } | cs |
첨부파일
sunrin_nodejs_2017-master-2.zip
'프로그래밍(주력) > JAVASCRIPT' 카테고리의 다른 글
리엑트 네이티브) XMLHttpRequest를 활용한 서버 통신 (0) | 2018.01.04 |
---|---|
소수전공 Bonus회차) async와 Promise 기초 (0) | 2017.12.28 |
소수전공 5회차) socket.io를 활용한 채팅, room구현 (0) | 2017.12.20 |
소수전공 4회차) mariaDB연동, 로그아웃, 세션 구현 (0) | 2017.12.20 |
소수전공 3회차) passport, mariadb연동 준비 (0) | 2017.12.18 |