컴퓨터/NodeJS
NodeJS 클라이언트에게서 정보 전달 받기
sayyesdoit
2021. 11. 3. 15:02
[GET 방식으로 받기]
1. 쿼리스트링 파라미터로 받기
클라이언트에서 GET 방식으로 정보를 보낼 때는 아래와 같이 주소창을 통해서 전달한다.
http://test.co.kr/?id=hello&pw=world
* 라우터 모듈 작성
app/routes$ vi info.js
//외부 모듈 추출
const express = require("express");
const router = express.Router();
//페이지 라우트
router.get('/', function(req, res) {
let name = req.query.name;
let age = req.query.age;
res.send("이름: "+name+" 나이: "+age);
});
//info.js 를 main.js 에 모듈로 내보낸다.
exports.router = router;
[POST 방식으로 받기]
클라이언트에서 POST 방식으로 전달하면 주소창에 파라미터가 표시되지 않는 특징이 있다.
app$ vi main.js
...
app.use(express.json());
app.use(express.urlencoded({extended: true}));
...
파서가 읽을 수 있는 데이터 허용치의 기본값음 100kb 이다. 이를 넘어서는 데이터가 전달되면 「PayloadTooLaregError: request entity too large」 오류가 발생한다. 그러면 아래와 같이 설정할 수 있다.
...
app.use(express.json({ limit: "50mb" })); //혹은 bodyParser.json()
app.use(express.urlencoded({ extended: true, limit:"50mb" }));
...
app/routes$ vi info.js
//외부 모듈 추출
const express = require("express");
const router = express.Router();
//페이지 라우트
router.get('/', function(req, res) {
let name = req.body.name;
let age = req.body.age;
res.send("이름: "+name+" 나이: "+age);
});
//info.js 를 main.js 에 모듈로 내보낸다.
exports.router = router;