본문 바로가기

nodejs6

passport 적용 Passport란? 현재 로그인한 유저, 클라이언트에는 쿠키를 서버에는 세션을 설정할 수 있는 미들웨어 NodeJS에 적용 passport를 애플리케이션의 미들웨어로 적용하기 전 로그인 전략(Strategy)을 짤 필요가 있음 -> 네이버로그인으로 접근하는지, 자체 로그인 방식으로 접근하는지에 대한 전략 전략 코드를 만들기 위해 passport라는 폴더를 만들어 전략 실행을 위한 index.js 파일과 local.js(로그인 전략) 파일을 만듦 passport/local.js const passport = require('passport'); const { Strategy: LocalStrategy } = require('passport-local'); const bcrypt = require('bcry.. 2020. 7. 8.
ORM(Sequelize) & 데이터베이스 ORM이란? 데이터베이스를 객체로 추상화한 것 쿼리를 직접 작성하지 않고 ORM의 메서드로 데이터를 관리할 수 있음 노드에서의 SQL ORM은 시퀄라이져(Sequelize) 메서드 예시) - insert users ('name') values ('alice'); → User.create({name:'alice'); - select * from users; → User.findAll(); - update users set name = 'bek' where id = 1; → User.update({name:'bek'}, {where: {id:1}}); - delete from users where id = 1; → destroy({where: {id: 1}}); 모델 데이터베이스 테이블을 ORM으로 추상화한.. 2020. 6. 15.
SuperTest 연습 사용자 목록 조회 API 테스트 Spec 성공 유저 객체를 담은 배열로 응답 최대 limit 갯수만큼 응답 실패 limit이 숫자형이 아니면 400을 응답 offset이 숫자형이 아니면 400을 응답(DB를 붙인 후 테스트 예정) 코드 //index.spec.js const request = require('supertest'); const should = require('should'); const app = require('./index'); describe('GET /users는', ()=>{ describe('성공시', ()=>{ it('유저 객체를 담은 배열로 응답한다 ',(done)=>{ request(app) .get('/users') .end((err,res)=>{ res.body.shou.. 2020. 6. 11.
테스트 주도 개발(TDD) 라이브러리 3가지 mocha should superTest Mocha 테스트 코드를 실행시켜 주는 테스트 러너 테스트 수트: 테스트 환경 -> 모카에서는 describe()으로 구현 테스트 케이스: 실제 테스트 -> 모카에서는 it()으로 구현 모카 설치: npm -i mocha --save-dev 모카 실행: node.modules\.bin\mocha 실행파일명 예시 코드) //utils.js function capitalize(str){ return str.charAt(0).toUpperCase() + str.slice(1); } module.exports = { capitalize : capitalize }; //utils.spec.js spec이 들어간 파일은 테스트 파일이다. const util.. 2020. 6. 10.
익스프레스JS 익스프레스JS란? NodeJS로 만들어진 웹 프레임워크 개념 5가지 애플리케이션 미들웨어 - 익스프레스에 기능을 추가하고 싶을 때 사용 라우팅 - url 처리에 사용 요청 객체 응답 객체 애플리케이션 익스프레스 인스턴스를 애플리케이션이라고 함 ex) const express = require('express'); const app =express(); -> 익스프레스 객체를 받은 app이라는 변수는 어플리케이션 서버에 필요한 기능인 미들웨어를 애플리케이션에 추가 라우팅 설정 가능 서버를 요청 대기 상태로 만들 수 있음 ex) app.listen(3000, function(){console.log('Server is running');}; 미들웨어 함수들의 연속 로깅 미들웨어 const express = .. 2020. 6. 10.
NodeJS의 특징 특징 4가지 자바스크립트 코드는 브라우저에서 실행되는 코드(NodeJS가 나오기 전까지) 크롬에서 사용하는 V8 엔진을 사용하여 NodeJS가 브라우저 밖에서 사용할 수 있게 됨 V8 엔진: 자바스크립트 코드를 해석해주는 해석기 이벤트 기반의 비동기 I/0 프레임워크 CommonJS를 구현한 모듈 시스템 이벤트 기반의 비동기 I/O 프레임워크 클라이언트가 보내는 요청을 Event Loop가 처리 Event Loop는 Single Thread -> nodeJS는 싱글 스레드라고 하는 이유 요청들은 Event Queue에 들어가 있음 Event Loop는 Event Queue안에 들어있는 요청들을 하나씩 꺼내어 실행 후 결과를 클라이언트에게 반환해줌 무거운 Job(디스크 읽기, 네트워크 통신 등...)들은 .. 2020. 6. 9.