ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 07/12 게임 웹 프로그래밍
    게임 웹 프로그래밍/node.js 2021. 7. 12. 14:36

    VS Code 실행후 
    exam-10 폴더 만들기 
    터미널 열어서 cd exam-10

    npm init -y 
    npm i express nodemon

    app.js파일 만들기 
    기본 express server 만들어서 실행 
    supervisor app or nodemon app
    포트 3030

     

    nodemon이 작동하지 않을 때는

    npx nodemon app

     

     

    postman으로 파라미터 잘 들어오는 지 확인

    app.cs

    const express = require('express');
    const app = express();
    
    app.use(express.json());
    
    app.get('/', (req, res) => {
        res.send("<h1>hello express!!</h1>");
    });
    
    
    app.post('/purchases', (req, res) => {
        console.log(req.body);
        res.send();
    })
    
    app.listen(3030, () => {
        console.log('server is running at 3030 port');
    });

     

    postman으로 json데이터 보내기

    포스트맨 json 리퀘스트

     

    서버 콘솔

     

    현재 시간 출력

    모먼트 사용

    npm i moment

    app.js

    const express = require('express');
    const moment = require('moment');
    const app = express();
    
    app.use(express.json());
    
    app.get('/', (req, res) => {
        res.send("<h1>hello express!!</h1>");
    });
    
    
    app.post('/purchases', (req, res) => {
        const { userid, goodsid } = req.body;
        const date = moment().format("YYYY-MM-DD hh:mm:ss");
        console.log(userid, goodsid, date);
        res.send();
    })
    
    app.listen(3030, () => {
        console.log('server is running at 3030 port');
    });

    포스트맨 json 리퀘스트
    서버 콘솔

     

    쿼리 보내기

    const express = require('express');
    const app = express();
    
    app.use(express.json());
    
    app.get('/purchases', (req, res) => {
        console.log(req.query);
    });
    
    app.listen(3030, () => {
        console.log('server is running at 3030 port');
    });

    포스트맨으로 쿼리 작성해서 보내기
    서버 콘솔

     

    프로토콜문서 작성 및 api 서버 구현

    app.js

    const express = require('express');
    const moment = require('moment');
    const app = express();
    
    let arrPurchases = [];
    
    app.use(express.json());
    
    app.get('/', (req, res) => {
        res.send("<h1>hello express!!</h1>");
    });
    
    app.get('/purchases', (req, res) => {
        console.log(req.query.userId);
        if(req.query.userId === undefined) {
            res.status(500).send({
                errorcode: 51000,
                errormessage: "잘못된 사용자 고유번호 입니다.",
            });
        } else {
            //배열에서 사용자  ID를 가지고 있는 객체를 배열로 반환 한다
            const results = arrPurchases.filter(
                p => p.userid === parseInt(req.query.userId)
            );
            console.log("----------->" + results);
            results.forEach(p => delete p.userid);
            res.status(200).send({
                results,
            });
        }
    });
    
    app.post('/purchases', (req, res) => {
        const { userid, goodsid } = req.body;
        const date = moment().format("YYYY-MM-DD hh:mm:ss");
        console.log(userid, goodsid, date);
        let purchase = {
            userid,
            goodsid,
            date,
        };
    
        if (goodsid === undefined) {
            //구매 실패 (등록된 상품 아이디가 없다면 )
            res.status(500).send({
                errorcode: 31000,
                errormessage: "상품ID가 없습니다.",
            });
        } else {
            //구매 성공
            arrPurchases.push(purchase);
            res.status(200).end();
        }
    })
    
    app.listen(3030, () => {
        console.log('server is running at 3030 port');
    });

     

Designed by Tistory.