노드로 서버 실행
-
백폴더 생성
-
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, 에 속함, ~에 속함 등)
- config 폴더 => config.json에 비밀번호 값과 데이터베이스 이름을 설정합니다.
-
app.js를 동기화합니다.
-
npm i -D nodemon으로 코드를 저장할 때 서버가 자동으로 다시 시작되도록 설정