ksyke 2024. 11. 13. 18:02

내장객체를 사용한 web server 만들기

const { createServer }=require('http');
const url=require('url');
const query=require('querystring');

const hostname='127.0.0.1';
const port=3000;


const server = createServer((req, res) => {
  console.log(req.url,req.method);
  let result=url.parse(req.url);

  if(result.pathname=='/'){
    res.statusCode=200;
    res.setHeader('Content-Type','text/html;charset=utf-8');
    res.end('<h1>index page</h1>');
  }else if(result.pathname=='/intro'){
    let id='guest';
    let msg=req.url.split('?');
    if(msg.length>1){
      msg=msg[1];
      id=query.parse(msg).id;
    }

    res.statusCode=200;
    res.setHeader('Content-Type','text/html;charset=utf-8');
    res.end('<h1>intro page</h1><p>id:'+id+'</p>');
  }else{
    res.statusCode=404;
    res.setHeader('Content-Type','text/html;charset=utf-8');
    res.end('<h1>err page</h1>');
  }
});

server.listen(port, hostname, () => {
  console.log(`Server running at https://${hostname}:${port}/`);
});

외부 라이브러리를 이용해 web server 만들기

https://expressjs.com/en/starter/installing.html

 

Installing Express

Learn how to install Express.js in your Node.js environment, including setting up your project directory and managing dependencies with npm.

expressjs.com

 

const express = require('express')
const fs=require('fs');
const app = express()
const port = 3000

app.get('/', (req, res) => {
    let msg=fs.readFileSync('./static/index.html',{encoding:'utf-8'});
  res.send(msg);
})

app.get('/intro',(req,res)=>{
    res.send('<h1>intro page</h1>');
});
app.get('/dept/',(req,res)=>{
    const arr=[
        {deptno:1,dname:'test1',loc:'test'},
        {deptno:2,dname:'test2',loc:'test'},
        {deptno:3,dname:'test3',loc:'test'}
    ];
    // res.setHeader('Content-type','application/json');
    // res.send(JSON.stringify(arr));
    res.json(arr);
});

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`)
})