JSON 보내주기(그리고 왜?)

8405 단어 node.jsBackendBackend

서버에서 정적이든, 동적이든 HTML 파일을 보내주는 것은 좋다. 하지만, 현재까지 내가 만든 서버는 브라우저 위에서 , 브라우저만의 특화된 서버사이드렌더링을 하는 서버이다. 안드로이드나, 아이폰 등 다른 클라이언트에서 서버에 있는 데이터를 가지고 오기 위해서는, JSON 같은 형태의 데이터를 제공하는 서버를 만들어야 한다.

사용자에게 고정된 HTML을 제공하는 것이 아니라, JSON 형태로 데이터를 제공하는 서버를 만들어보자.

const http = require('http');
const fs = require('fs');
const ejs = require('ejs');

const name = "Seoyeon";

// 현재 우리 서버는 서버의 메모리에 데이터를 보관하고 있다
const courses = [
    {name:'HTML'}, {name: 'CSS'},{name: 'JavaScript'}, {name: 'Node'}
  ]

const server = http.createServer((req, res) => {
  
  const url = req.url;
  const method = req.method;
  if (url==='/courses'){
      if (method == 'GET'){
        res.writeHead(200, {'Content-Type':'application/json'});
        res.end(JSON.stringify(courses))
      }else if(method === 'POST'){
          const body = [];
          req.on('data', chunk =>{
              console.log(chunk);
              body.push(chunk)
          });
          req.on('end',()=>{
              const course = JSON.parse(Buffer.concat(body).toString())
              courses.push(course)
              console.log(course)
              res.writeHead(201);
              res.end()
          })
      }
  }
});

server.listen(8080);

좋은 웹페이지 즐겨찾기