본문 바로가기

728x90
반응형

공부 정리/NodeJs

(16)
데이터베이스를 사용해 API 요청하기 *개요 지난 시간, 노드의 ORM인 sequelize를 공부했습니다. 이를 바탕으로 배열로 만들어 둔 API 요청을 sqlite를 이용해서 만들어 보겠습니다. * sequelize로 개선하기 //models.js const Sequelize = require('sequelize'); const sequelize = new Sequelize({ dialect: 'sqlite', storage: './db.sqlite', logging: false }); const User = sequelize.define('User', { //name: Sequelize.STRING //varchar255 name: { type: Sequelize.STRING, unique: true } }); module.exports..
노드 ORM 시퀄라이저 * 개요 앞서, 코드 리팩토링을 통해 user API 코드들을 개선했습니다. 이제, DB와 연동해서 실제 데이터를 활용 할 예정입니다. ORACLE, MYSQL 등의 DB를 연동해서 사용할 수도 있지만, ORM을 사용합니다. node에서 만든 객체를 활용해 바로 DB에 연동시켜 좀 더 객체지향적으로 코드를 짤 수 있습니다. * 모델 데이터베이스에서 테이블을 ORM으로 추상화 한 것을 model이라고 합니다. node js에서는 ORM으로 시퀼라이저를 사용합니다. package.json의 dependencies에 sequelize, sqlite3 의존성을 추가하도록 합니다. //models.js const Sequelize = require('sequelize'); const sequelize = new ..
라우터 컨트롤러 함수로 분리 *개요 이전에 index.js에 라우팅 관련 모든 정보들을 썼습니다. 하지만 모든 코드를 한 파일에 넣는 것은 가독성이 떨어지고 유지보수가 쉽지 않습니다. 따라서, 이번에 유저 관련 API를 user 폴더에 분리하고 controller도 따로 보관합니다. api/user/index.js const express = require("express"); const router = express.Router(); const ctrl = require("./user.ctrl"); router.get("/", ctrl.index); router.get("/:id", ctrl.show); router.delete("/:id", ctrl.destory); router.post("/", ctrl.create); rou..
TDD로 API 서버 개발하기 * 개요 앞 글에서, mocha, should 사용법을 알아보았습니다. 이제, 실제 API 서버를 어떻게 TDD로 개발할 수 있는지 실습합니다. HTTP 메서드인 GET, POST, PUT, DELTE 4가지를 실습하고 예외 상황도 검사합니다. 1. GET /users - 성공시 유저객체를 담은 배열로 응답한다 - 성공시 최대 limit 갯수만큼 응답한다. - 실패시 limit이 숫자형이 아니면 400을 응답한다 //index.spec.js const request = require("supertest"); const should = require("should"); const app = request("./index"); describe('GET /users 는', () => { describe('성공..
mocha, should, supertest 사용하기 * 개요 자바에서 TDD를 했던 경험을 바탕으로, node js 에서 어떻게 사용하는지 궁금해서 수강합니다. mocha를 이용하며, describe - it 구조를 활용합니다. 이전에 자바에서 사용했던 describe - it 작성 방식이 여기서 차용된 것임을 알았습니다. 이미 한번 자바에서 해보고나니 이해하는데 크게 어려움은 없었습니다. * mocha, should, supertest란? 테스트 수트 : 테스트 환경으로 모카에서 describe()로 구현합니다. 테스트 케이스 : 실제 테스트를 말하며 모카에서는 it()로 구현합니다. '노드 assert 말고 서드파티 라이브러리를 사용하라' 슈드는 단위테스트에서 사용하는 검증 라이브러리입니다. 가독성 높은 테스트 코드를 만들 수 있습니다. 단위테스트는 ..
강의 후기 윤재성님은 다양한 언어로 다양한 강의를 찍어두어서 알고 있던 분이었습니다. 처음에는 안드로이드 앱 개발을 수강하였기 때문에, 스타일을 잘 알고 있었습니다. 특히, 기본내용을 찬찬히 잘 설명해주시고 템포를 조절해주셔서 좋았습니다. 장점은, 각 파트의 개념을 간단히 소개하고 코드로 실습을 합니다. 입문서에 가깝기 때문에 nodejs를 잘 몰라도 아무런 무리없이 쉽게 들을 수 있습니다. 목소리 톤과 중간중간 코드 확대 등이 초보자가 따라가기에 편하고 안정적입니다. 모듈 설정하기, 라우팅 설정, html 랜더링, db연동까지 큰 틀 개념을 빠른 시간 내에 습득할 수 있었습니다. 아쉬운 점은, 강의 자체가 오래되었다보니, 코드환경이 vs code가 아닌 nodeeclipse입니다. javascript는 무조건 v..
node js 데이터베이스 이용하기 *개요 nodejs에 database를 연동해서 구동시켜봅니다. 단순히 서버에서 요청했던 내용들을 이제 직접 sql을 이용해서 저장하고 실행해봅니다. * 데이터 베이스로 조회하기 사용하고 싶은 데이터베이스를 dependencies에 등록합니다. 이번 실습에서는 mysql을 이용합니다. //index.ejs 이름 : 로그인 로그인 화면을 만듭니다. 여기서 로그인하는 user_name은 세션에 저장할 예정입니다. //controller.js app.post("/login", urlencodedParser, function(req, res){ var user_name = req.body.user_name; req.session.user_name = user_name; res.redirect("main"); }..
node js 파라미터, 쿠키, 세션 이용하기 * 개요 앞 글에서 express를 이용해 nodejs의 라우팅, ejs 랜더링 개념을 배우고 실습했다. 이번 시간에는 단순 get요청이 아닌 파라미터를 이용한 POST 요청, 쿠키, 세션을 사용한다. 파라미터를 주고받는 방법을 중점적으로 살펴본다. * form 객체에서 파라미터 이용한 POST 요청하기 express에서 파라미터는 request 객체를 통해 파라미터 추출이 가능하다. get 방식의 경우 query라는 객체안에 모두 들어 있다. post 방식의 경우 bodyParser 모듈을 이용해야 파라미터를 추출할 수 있다. POST 요청은 GET과 다르게 body에 데이터를 담아서 이동한다. noe에서는 body를 이용할 수 있도록 body-parser 모듈을 새로 추가해야 한다. dependenc..

728x90
반응형