React Project_0327로 Node_bird 빌드하기

노드로 서버 실행

  • 백폴더 생성

    • npm init => 프로젝트 이름 설정, 작성자 설정 및 기타 모든 것은 enter => 파일로 전달됩니다. Package.json이 생성됩니다.

    • 포트를 3065로 설정하고 노드의 http 모듈로 서버를 실행합니다.

        const http = require('http');
        const server = http.createServer((req,res)=>{
          //요청에 대한 정보 req 
          //응답에 대한 정보 res 
          console.log(req.url, req.method);
          res.write('Hello nodebirds');// 여러줄을 치고 싶다 => res.write()
          res.end('Hello node'); //마지막에만 .. res.end() 
          // () 안에 html도 넣을 수 있다. 
        });
        server.listen(3065,()=>{
            console.log('서버는 실행중');
        });
        /*
            createServer라는 곳에서 요청메서드나 url에 따라서 응답을 해준다. 
            프론트 서버나 브라우저가 요청을 보내면 응답을 해준다 => 서버 
            요청 한번 당 응답 한번 , 아예 안보내도 안되고 무조건 요청을 보내야 한다.
            응답을 안 보내면 특정시간 (30초정도)후에 브라우저가 자동으로 응답 실패로 처리해버린다.
            요청과 응답은 1:1 .. 
            응답 두번 보내지않게 조심해야 한다 res.end 2번 보내면 안된다. 
            노드 자체가 서버 X , 노드 자체에서 제공하는 http 모듈이 서버 
        */

Express로 라우팅과 라우터 분리

  • NPM 익스프레스

  • route 폴더에 post.js 파일 생성

        const express = require('express');
        const postRouter = require('./routes/post');
        // routes폴더의 post 파일 require해주고 
        const app = express(); //한번 호출 해주어야 한다.
        /*
            app.get => 가져오다
            app.post => 생성하다
            app.put => 전체 수정
            app.delete => 제거
            app.patch => 부분수정
            app.options => 찔러보기
            app.head => 헤더만 가져오기 (헤더/바디)
        */
          app.get('/',(req,res)=>{ // '/' url , get 메서드
              res.send('안녕! express');
          })
    
          app.get('/',(req,res)=>{ // '/api' url , get 메서드
              res.send('안녕! api');
          })
          app.get('/posts',(req,res)=>{
              res.json((
                  {id: 1, content: 'vervon'},
                  {id: 2, content: 'jin'},
                  {id: 3, content: 'vermouth'},
              ));
          })
    
          app.use('/post',postRouter); 
          // 여기서 use 해준다. '
          // 앞의 '/post'는 prefix
    
          app.listen(3065, () => {
              console.log('서버 실행 중 입니댜');
          })

MySQL 및 시퀀스

  • MySQL 설치

  • npm 나는 Sequelize-cli mysql2를 속속화합니다.

    • 후유증-cli
    • Sequelize: SQL을 몰라도 JavaScript로 SQL을 조작할 수 있게 해주는 라이브러리입니다.
    • mysql2: 노드와 mysql을 연결하는 드라이버
  • npx sequenceize init => 시퀀스 설정

    • config 폴더 => config.json에 비밀번호 값과 데이터베이스 이름을 설정합니다.
    • 모델 폴더에 파일 생성 => 스프레드시트가 됩니다.
    • 모델 폴더에 생성된 각 파일에 대한 관계를 설정합니다.
      ( hasMany, 에 속함, ~에 속함 등)
  • app.js를 동기화합니다.

  • npm i -D nodemon으로 코드를 저장할 때 서버가 자동으로 다시 시작되도록 설정