본문 바로가기

728x90

ComputerScience/NodeJs

(22)
node - 10.2 웹 API 서버 만들기 (api 호출, 사용량 제한) https://thebook.io/080229/ 더북(TheBook): Node.js 교과서 개정 2판 thebook.io * 위 내용을 정리하였음 1. 다른 서비스에서 호출하기 - api를 제공하는 서버를 만들어보았다. - 이번에는 이 api를 사용하는 서비스를 만들어보자. - 이전에 만든 rest api 서버는 nodebird-api 서버이다. - 이 api를 사용해서 2차 서비스를 제공하는 nodecat이라는 서비스를 만들어보자. // package.json { "name": "newservice", "version": "0.0.1", "description": "new service using api", "main": "app.js", "scripts": { "start": "nodemon app..
node - 10.1 웹 API 서버 만들기 (프로젝트 구조, jwt토큰) 더북(TheBook): Node.js 교과서 개정 2판 thebook.io * 위 내용을 정리하였음 1 API 서버 - 만약 노드를 모바일 서버로 활용하고 싶다면 서버를 REST API 구조로 구성하면 된다. - API : Application Programming Interface, 현재 프로그램의 기능을 사용할 수 있게 허용하는 접점 - API를 통해 클라이언트가 서버를 통해 데이터 베이스로부터 필요한 기능들을 제공받을 수 있다. - 물론 열어둔 API는 인증된 사용자만 일정 횟수 내로 접근하도록 할수도 있다. - 이전까지는 웹서버에서 html을 응답으로 보내줬지만 모바일은 JSON으로 데이터만 받으면 될 것이다. - 서버에 API를 올려서 URL을 통해 접근할 수 있도록 웹 API 서버를 만든다. ..
node - 9.4 익스프레스로 SNS서비스 만들기 (이미지 업로드, 팔로잉, 해시태그 구현) https://thebook.io/080229/ 더북(TheBook): Node.js 교과서 개정 2판 thebook.io * 위 내용을 정리하였음 1. multer 패키지로 이미지 업로드 구현하기 - 멀티파트 형식의 이미지를 업로드 해보자. npm i multer - 이미지는 서버 디스크에 저장되고 그 경로만 데이터 베이스에 저장된다. - post라우터를 작성해보자. // routes/post.js const express = require('express'); const multer = require('multer'); const path = require('path'); const fs = require('fs'); const { Post, Hashtag } = require('../models')..
node - 9.3 익스프레스로 SNS 서비스 만들기(로그인 구현) 더북(TheBook): Node.js 교과서 개정 2판 thebook.io *위 내용을 정리하였음 1. Passport - 회원 가입, 로그인시 세션, 쿠키 처리의 작업을 해주는 Passport모듈을 사용해서 구현할 것이다. - 뿐만 아니라 SNS 로그인까지 구현해보자. npm i passport passport-local passport-kakao bcrypt - 관련 모듈들을 설치하고 app.js와 Passport 모듈을 연결한다. - require('./passport')는 require('./passport/index.js')와 같다. const passport = require('passport'); const passportConfig = require('./passport'); passpor..
node - 9.2 익스프레스로 SNS 서비스 만들기(SQL DB) 더북(TheBook): Node.js 교과서 개정 2판 thebook.io * 위 내용을 정리하였음 1. SQL 데이터 베이스 세팅 - MySQL과 시퀄라이즈를 사용한다. // models/user.js const Sequelize = require('sequelize'); module.exports = class User extends Sequelize.Model { static init(sequelize) { return super.init({ email: { type: Sequelize.STRING(40), allowNull: true, unique: true, }, nick: { type: Sequelize.STRING(15), allowNull: false, }, password: { type:..
node - 9.1 익스프레스로 SNS 서비스 만들기(프로젝트 구조) 더북(TheBook): Node.js 교과서 개정 2판 thebook.io * 위 내용을 정리하였음 1. package.json 만들기 npm init { "name": "sns", "version": "0.0.1", "description": "simple sns serveice with express", "main": "app.js", "scripts": { "start": "nodemon app" }, "author": "jsdysw", "license": "MIT" } - npm start로 nodmon을 실행할 수 있는 스크립트도 꼭 적어주자. 2. package 설치 - NoSQL 데이터 베이스를 사용할 것 이므로 relation을 자바스크립트 객체와 매핑해주는 시퀄라이즈를 설치한다. npm ..
node - 8 몽고디비 Node.js 교과서 개정 2판: 8장 몽고디비 thebook.io * 위 내용을 정리하였음 8 몽고디비 - 자바스크립트 문법을 사용하는 NoSQL 데이터 베이스이다. 8.1 NoSQL vs. SQL - NoSQL(Not only SQL)의 대표 주자는 몽고디비이다. SQL(MySQL) NoSQL(몽고디비) 규칙에 맞는 데이터 입력 테이블 간 JOIN 지원 안정성, 일관성 용어(테이블, 로우, 컬럼) 자유로운 데이터 입력 컬렉션 간 JOIN 미지원 확장성, 가용성 용어(컬렉션, 다큐먼트, 필드) - 고정된 테이블이 아니라 컬럼 개념이 없는 컬렉션을 사용한다. - 컬렉션을 만들면 어떤 데이터든 들어갈 수 있다. - JOIN기능이 없어 동시에 쿼리를 수행하기 어려운 단점이 있지만 확장성, 가용성, 데이터의 ..
node - 7.6 시퀄라이즈 사용하기 Node.js 교과서 개정 2판: 7장 MySQL - 1 thebook.io * 위 내용을 정리하였음 7.6 시퀄라이즈 사용하기 - 노드에서 MySQL 데이터 베이스를 작업하기 쉽게 해주는 라이브러리 이다. - ORM(Object-relational Mapping)이라고 한다. 자바스크립트 객체와 데이터베이스의 relation을 매핑해주는 도구이다. - 즉 자바스크립트 구문을을 알아서 SQL로 바꿔준다. $ npm i sequelize sequelize-cli mysql2 - sequelize-cli : 시퀄라이즈 명령어를 실행하기 위한 패키지 - mysql2 : MySQL과 시퀄라이즈를 이어주는 드라이버 - 설치 완료 후 sequelize init 명령어를 호출한다. 전역 설치 없이 명령어로 사용하려고..

728x90