100일 챌린지/빅데이터기반 인공지능 융합 서비스 개발자

Day 74 - JavaScript로 Web Server 만들기

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}`)
    })