웹 프로그래밍 시험지 한글 파일열기
리소스 / 프로토콜 문서
엑셀 파일열어서
보기 - 눈금선 없애고
회원관리에서 첫번째 표 복사해서 붙이기
시험지에 맞춰서 수정해주기
구매 등록 복사해서 문성에 있느 것 처럼 바꿔주기
비쥬얼 코드 켜서
exam-10 폴더 만들어주기
폴더로 들어가서
init -y 초기화 해주고
express 와 노드몬을 깔아준다.
노드몬, 슈퍼바이저 둘 다 실행이 안되는데
npx nodemon app 로 넣으면 실행이 된다.
정상적으로 작동을 함
구매 등록 라우터 만들어주기
app.post('/purchases', (req,res) => {
console.log(req.body);
// let result = {
// errorcode, errormessage
// };
// res.status(200).send();
})
raw 체크 json 으로 언더 바 눌러서 바꿔주기
json 파일 형식으로 post 해주기
밑에 나온다. 우리가 send를 안해줘서 포스트맨에서 무한정 돌긴한다.
크게 상관은 없을듯
이제 저장될때 시간도 같이 저장 되게 할 것이다.
moment 를 사용해 줄 것이다
npm 에서 moment 설치
app.post('/purchases', (req,res) => {
const {userid, goodsid} = (req.body);
const now = moment().format('YYYY-MM-DD hh:mm:ss');
console.log(userid, goodsid, now);
})
코드 추가해주기
모먼트를 넣은 것을 찍어본다.
여기까지 코드
const express = require('express');
const moment = require('moment');
const app = express();
app.use(express.json());
app.get('/', (req,res) => {
res.send("<h1> hello </h1>")
})
app.post('/purchases', (req,res) => {
const {userid, goodsid} = (req.body);
const now = moment().format('YYYY-MM-DD hh:mm:ss');
console.log(userid, goodsid, now);
})
app.listen(3030, () => {
console.log("3030 sever on");
})
-----
DB가 지금은 연결 안되어있으니
서버에서 사용할 배열을 만들어준다.
배열에 아이템을 푸시해준다.
정상적으로 등록 되었다면
res로 200 보내주고 엔드해주기
200 떨어짐
상품이 없는 걸 가정하면 오류 코드 보내야함
상품이 없는 걸 가정했음
상품 구매 실패 내역 코드
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 </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);
let purchases = {
userid, goodsid, date
};
//구매 실패 (등로된 상품 아이디가 없으면)
if(goodsid === undefined){
res.status(500).send({
errorcode: 31000,
errormessage: '상품 ID가 없습니다.',
})
}else{
arrPurchases.push(purchases);
res.status(200).end();
}
})
app.listen(3030, () => {
console.log("3030 sever on");
})
------
구매 내역 조회 프로토콜 문서 만들기
get 방식을 쿼리로 날려서 받는 방식으로 할 것이다.
http://localhost:3030/purchases?userid=12343
get 할때 저런 쿼리를 쏘게되면 가져올수 있다.
쿼리를 제대로 받을 수 있는가?
쿼리로 쏜 유저 ID가 배열에 있으면 출력해주고, 아니면 오류 코드를 보내준다.
오류 코드 내는 것
찾는 것은 filter를 사용할 것이다.
app.get('/purchases', (req,res) => {
console.log(req.query.userid);
if(req.query.userid === undefined){
res.status(500).send({
errorcode: 31000,
errormessage: '잘못된 사용자 고유번호입니다.',
})
}else{
//배열에서 사용자 ID를 가지고 있는 객체를 배열로 반환한다.
const results = arrPurchases.filter(p => p.userid === parseInt(req.query.userid));
console.log(results);
res.status(200).send({
results,
})
}
})
// === 는 값 +타입비교라서 p.userid 는 int // req.query.userid 는 문자열 이라서 오류가 떠서
parseInt() 를 해주었다.
post로 먼저 보내고
get에서 그 아이디로 쿼리로 쏘면
그 찾은 아이디의 오브젝트가 출력 된다
전체 코드
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 </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);
let purchases = {
userid, goodsid, date
};
//구매 실패 (등로된 상품 아이디가 없으면)
if(goodsid === undefined){
res.status(500).send({
errorcode: 31000,
errormessage: '상품 ID가 없습니다.',
})
}else{
arrPurchases.push(purchases);
res.status(200).end();
}
})
app.get('/purchases', (req,res) => {
console.log(req.query.userid);
if(req.query.userid === undefined){
res.status(500).send({
errorcode: 31000,
errormessage: '잘못된 사용자 고유번호입니다.',
})
}else{
//배열에서 사용자 ID를 가지고 있는 객체를 배열로 반환한다.
const results = arrPurchases.filter(p => p.userid === parseInt(req.query.userid));
console.log(results);
res.status(200).send({
results,
})
}
})
app.listen(3030, () => {
console.log("3030 sever on");
})
'Unity > 서버' 카테고리의 다른 글
210714 _ 데이터 프로그래밍 2 (복습 및 시험) (0) | 2021.07.14 |
---|---|
210713_ 데이터베이스 프로그래밍 (복습 및 시험) (0) | 2021.07.13 |
210709_ 페이스북 로그인 (2) | 2021.07.09 |
0708_ 카카오로그인 ( 유니티에서 WebView_OnMessageReceived 데이터 받아서 유니티에서 띄우기) (0) | 2021.07.08 |
0708_ 서버 (firebase_구글 아날리틱스) (0) | 2021.07.08 |