node.js 17

sequelize 관계 설정하기

관계형 database이다 보니 table간 data들의 관계를 맺어줘야 하는데, 관계를 설정할 때 알아야할 것이 있다. 1 : 1 관계 User.hasOne(db.Profile) - User는 하나의 Profile을 갖는다. Profile.belongsTo(db.User) - Profile은 다수의 User에게 하나씩 속해있다. 1 : N 관계 User.hasMany(db.Post) - User는 다수의 Post를 가지고 있다. Post.belongsTo(db.User) - Post는 다수의 User에 속해있다. N : N 관계 N : N 관계의 경우는 중간 테이블의 이름을 through를 통해 명시해 주어야 한다. User.belongsToMany(db.Project, {through: UserPro..

node.js 2022.01.16

sequelize model 만들기

MySQL에 table이 sequelize에서는 Model이다. 테이블을 만들 때, 분리할지 분리하지 않을지는 하나의 테이블에 복수의 정보가 들어가는지의 여부에 따라 나누면 된다. 이제 로그인 회원가입 시 활용할 user 테이블을 가지고 예시를 들며 적으려한다. 1. models에 user.js 파일 생성 (models/user.js) module.exports = (sequelize, DataTypes) => { const User = sequelize.define( 'User', { // 가로행에 들어갈 정보, MySQL에는 users 테이블 생성 (자동으로 소문자가 되고 복수로 바뀜) / id가 기본적으로 들어있다. email: {}, nickname: {}, password: {}, }, { //..

node.js 2022.01.16

MySQL과 sequelize 연결하기

서버에서 router를 만들고 이제 data를 저장하기 위해 관계형 database인 MySQL을 사용하기로 했다. 사용하기 전에 MySQL을 조작하기 위해 사용법을 익히면 좋으나 손쉽게 javascript로 조작할 수 있는 방법을 찾았다. sequelize란? node.js의 ORM(Object-Relational Mapping)이다. 여기서 ORM은 간단하게 말하자면 객체지향 패러다임을 활용하여 관계형 database의 data를 조작하게 하는 기술이다. 1. 설치 및 초기화 /back $npm install sequelize $npm install mysql2 $npm install sequelize-cli mysql: node와 mysql을 연결해주는 드라이버 sequelize-cli: seque..

node.js 2022.01.16

express 라우터 분리하기

back/routes 폴더를 만들고 안에 post.js와 user.js 파일을 만든다. 기존의 app.js안에 코드를 보자. const express = require('express'); const server = express(); server.get('/', (req, res) => { res.send('hello express in e도서관'); }); server.listen(3065, () => { console.log('서버를 실행중입니다.'); }); 여기서 요청할 url 마다 코드를 작성하기에는 줄이 길어지고 곂치는 url이 생겨 유지.관리나 코드를 작성하다보면 헷갈리고 불편할 경우가 있을 것이다. 때문에 router를 나눠서 사용하는 것이 좋다. 나누는 방법은 아래와 같다. 1. bac..

node.js 2022.01.16

서버 자동실행을 위한 nodemon

서버를 실행하기 위해 아래의 명령어를 사용해왔다. $node app.js 이 명령어는 코드가 수정될 때마다 매번 실행해 줘야하는 불편함이 있다. 때문에 코드가 수정될 때마다 자동으로 서버를 실행해주는 nodemon을 사용할 것이다. 1. nodemon 설치 $npm nodemon 2. package.json의 scripts 설정 { "name": "e_library_back", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "dev": "nodemon app" }, "author": "KYH", "license": "ISC", "dependencies": { "express": "^4.17.2" }, "devDependen..

node.js 2022.01.16

express로 라우팅하기

http로 서버를 구성하기에는 직관적이지 못하며 구고적이지 못하다는 단점이 있었다. 그럼 구조적이고 직관적으로 코드를 작성하기 위해 express 프레임워크를 사용하려한다. $npm install express const express = require('express'); const server = express(); server.get('/', (req, res) => { res.send('hello express in e도서관'); }); server.listen(3065, () => { console.log('서버를 실행중입니다.'); }); server 뒤에 사용할 method를 붙여주고 그 안에 url을 설정한 뒤 callback 함수로 요청과 응답을 처리해주면 된다. 매우 간단하다. list..

node.js 2022.01.16

node로 서버 구동하기

먼저 시작하기 전에 node.js는 server가 아니다. node.js 공식문서에 어디에도 node.js가 server라는 말은 없다. node.js는 chrome v8 javascript 엔진으로 빌드된 javascript 런타임이다. javascript 런타임이란? javascript 언어가 구동되는 환경이다. runtime은 프로그래밍 언어가 구동되는 환경을 뜻하는데 javascript runtime이라고 하면 node.js나 크롬 브라우저 등을 말할 수 있다. (javascript 언어가 구동되는 환경) 그럼 이제 node로 서버를 구동해보자. 1. node 설치 2. back 폴더 안에서 git init $git init 3. back/app.js const http = require('htt..

node.js 2022.01.16