express 기본 및 HTTP Methods

18062 단어 node.jsnode.js

설치

$ npm install express --save

서버 실행

  • 실행 방법은 아래코드가 저장되어있는 자바스크립트 파일을 만들고 해당 파일을 cmd 창에서 node '자바스립트 파일명' 수행 하면 서버가 실행 된다.
  • 3333포트로 서버를 실행 시키며 정상적으로 실행 될 경우 listen의 콜백함수가 호출 된다.
  • 서버 실행 후 http://localhost:3333/ 접속 가능
const express = require('express'); 
const app = express();
let portNumber = 3333;

app.listen(portNumber, () => {
    console.log(`start ${portNumber} prot`); 
});

외부 접근시 Access-Control-Allow-Origin 오류 해결 방법

const cors = require('cors'); // Access-Control-Allow-Origin  해결 모듈
app.use(cors());

HTTP Methods

  • GET: getting data
  • POST: creating data
  • PUT: updating data
  • DELETE: deleting data

get(getting data)

get

let userInfos=[
    {name:'아무개',age:22},
    {name:'강아지',age:32},
    {name:'소나무',age:42}
];
app.get('/user', function(request,response){
  // 응답 코드 200과 함께 데이터 클라이언트에게 전달 
    response.status(200).send(userInfos); 
});

Route Parameter

  • httpp://localhost:3333/user/1 로 접속 하면 "app.get('/user/:id' " 선언되어있는 callback 함수가 호출 되고 request 매개변수의 params 객체 안에 id:1의 값을 확인 할 수 있다.
  • 넘겨받은 파라미터를 데이터를 조회 하거나 할때 없으면 response.status(404) 에러를 전달 하여 예외 처리를 할수 있다
app.get('/user/:id', function (request, response) {
    console.log('request.params.id', request.params.id);
    response.status(200).send(request.params.id); 
});
  • 라우터 파리미터 여러개도 전달 가능
  • "httpp://localhost:3333/user/1/테스트입니다" 로 접속 하면 "app.get('/user/:id/:searchName' " 선언되어있는 callback 함수가 호출 되고 request 매개변수의 params 객체 안에 id,searchName의 클라이언트에서 전달한 값을 확인 할 수 있다.
app.get('/user/:id/:searchName', function (request, response) {
    console.log('request.params.id', request.params.id);
    console.log('request.params.searchName', request.params.searchName);
    response.status(200).send(''); 
});

Query string parameter

app.get('/user', function (request, response) {
    console.log('request.query', request.query);    
    response.status(200).send(''); 
});

post(creating data)

  • 데이터 추가 시 post를 사용
  • 클라이언트 헤더가 application/x-www-form-urlencoded 인경우 use에 express.json() urlencoded 사용해야 request.body에 데이터를 받을 수 있다.
app.use(express.json()) 
app.use(express.urlencoded({extended: true}))

app.post('/user', function (request, response) {
    console.log('post request.body', request.body);
    response.status(200).send(''); 
});

put(updating data)

  • 데이터 update 시 사용
  • post와 동작 방식은 동일하다
app.use(express.json()) 
app.use(express.urlencoded({extended: true}))

app.put('/user', function (request, response) {
    console.log('put request.body', request.body);
    response.status(200).send(''); 
});

delete(deleting data)

  • 데이터 삭제 시 사용 하며 사용법은 get이랑 비슷
app.delete('/user/:id', function (request, response) {
    console.log('delete request.params.id', request.params.id);
    response.status(200).send(''); 
});

좋은 웹페이지 즐겨찾기