노드

    mongoose schema

    mongoose schema? mongoDB는 NoSQL이기 때문에 schema 없이 데이터를 유연하게 관리할 수 있는 장점이 있지만, 상용 서비스 운영 시 데이터의 일관성 및 중복성의 문제가 발생할 수 있다. 이럴 때 스키마를 사용한다. /* ./model/post.js */ const mongoose = require("mongoose"); const Schema = mongoose.Schema; const postSchema = new Schema({ title : String, content: String, create_date : {type: Date, default: new Date()}, }) // 이로써 외부 파일을 통해 스키마를 적용할 수 있음 module.exports = mongoos..

    mongoose

    mongoose? mongoose는 mongoDB의 데이터를 쉽게 관리해주는 패키지다. 공식 문서에서 mongoose를 ODM(Object Document Mapping)으로 소개하고 있으며, 객체와 문서를 1:1로 매칭된다. 여기서 Obect는 JS 객체를 뜻하고, Document는 mongoDB 문서(데이터)를 의미한다. Document를 조회할 때 JS Object로 바꿔주는 역할 mongoose 설치 및 Atlas 연결 npm install mongoose 위에서 mongoDB와 연결을 위해 복사한 코드를 ./bin/www 파일의 mongoose.connect에 붙여넣으면 된다. /* ./bin/www */ #!/usr/bin/env node /** * Module dependencies. */ ..

    express-session

    이러한 문제때문에 세션을 사용함. 세션은 상태정보가 서버에 저장되지 않는 한계를 극복하기 위해 만들어짐. - express-session : express 환경에서 session을 쉽게 적용하기 위한 패키지임. npm install express-session /* ./app.js */ var createError = require('http-errors'); var express = require('express'); var path = require('path'); var cookieParser = require('cookie-parser'); var logger = require('morgan'); var indexRouter = require('./routes/index'); var usersRo..

    미들웨어

    // index.js // // 미들웨어가 로그인 여부를 확인하는 코드 const loginCheck = (req, res, next) => { // const userLogin = true; const userLogin = false; if (userLogin) { next(); } else { res.status(400).json({ message: "login failed", }); } } router.get('/', loginCheck, (req, res) => { res.status(200).json({ message: "login success!" }); }); module.exports = router; 상수로 로그인이 되어있는지 여부를 가정하고 GET 메서드를 보내면 postman에서 JS..

    express - HTTP method

    HTTP method : 서버에 요청을 보내는 방법으로, 서버에 어떤 목적과 의도를 가지고 있는지 method를 통해 나타내는 방법 - GET : 요청받은 정보를 검색(READ)하여 응답 - POST : 요청된 자원을 생성(CREATE) - PUT : 요청된 자원을 수정(UPDATE) - DELETE : 요청된 자원을 삭제(DELETE) GET method // index.js // var express = require('express'); var router = express.Router(); // GET method router.get('/read', (req, res) => { res.status(200).json({ message: "read success", }); }); module.expo..

    express와 nodemon

    - express : 빠르고 간편한 웹 프레임워크 - 프레임워크 : 프로그램을 만들기 위한 기본 툴로써, 체계적인 코드관리 및 유지보수가 용이 - express-generator : express의 기본 구조를 만들어 줌 npm install -g express express-generator nodemon # express-generator로 코드를 생성하는 방법 express --ejs first-project # powershell에서 실행하면 오류가 뜨므로, cmd에서 실행해야 정상 동작 # ejs 파일은 실제 html 파일과 유사한 모습을 가지고 있어서 많이 사용함 cd first-project 위 명령어를 실행하면 first-project 폴더가 생성된다. npm install # 필수 패키지..

    node.js 기본 API 구현 및 postman 테스트

    const http = require('http'); // http는 서버를 쉽게 구축할 수 있게 해주는 패키지 http // Server를 생성하고 콜백 함수로, req와 res를 받아 진행하는 함수 .createServer((req, res) => { if (req.url === "/") { // status code 200일 때 main url 출력 res.writeHead(200); res.end("main url"); } else if (req.url === "/upload") { // upload 페이지 접속 시 status code 200일 때 upload url 출력 res.writeHead(200); res.end("upload url"); } else if (req.url === "/d..

    node.js 초기 세팅 및 hello world 출력

    // http 패키지를 불러오기 위한 코드 const http = require('http'); // req는 서버에 요청, res는 클라이언트에 응답을 보낼 때 사용 http.createServer((req, res) => { // 응답을 보낼 때 헤더값으로 상태코드 200 등과 타입을 보내주게 됨 res.writeHead(200, { "Content-Type": "text/html" }); // 클라이언트에 응답보내는 코드 res.end("Hello World!"); // 서버를 실행할 코드 }).listen(3000, () => { // 포트번호는 서버 내의 프로세스를 구분하는 번호임 console.log("port 3000 connected"); });