06-3.js
const express = require('express');
const app = express();
const port = 3000;
app.use((req, res) => {
console.log('첫번째 미들웨어 실행');
console.dir(req.header)
const userAgent = req.header('User-Agent');
console.log(userAgent);
// http://localhost:3000/?userid=apple
const paramName = req.query.userid; //get방식의 변수값을 가져옴
console.log(paramName);
res.writeHead(200, { 'content-type': 'text/html;charset=utf-8' });
res.write('<h2>익스프레스 서버에서 응답한 메세지입니다.</h2>');
res.write(`<p>User-Agent : ${userAgent}</p>`);
res.write(`<p>paramName : ${paramName}</p>`);
});
app.listen(port,() => {
console.log(`${port}포트로 서버 실행중...`);
});
포스트맨 다운로드
https://www.postman.com/downloads/
Nodemon
서버 코드를 변경할 때마다 저장만 하면 바로 서버를 재시작하도록 하는 모듈
[Nodemon설치방법]
1. $ npm install -g nodemon
2. package.json의
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},를
"scripts": {
"start": "nodemon 06-4.js"
},로 변경 후
3. $ npm i body-parser
4. $ npm start
5. 저장하면 브라우저 실시간 실행 확인
(되지 않을 시(이유:충돌) vscode 껐다 켜거나 port번호 바꾸기)
06-4.js
//postman , nodemon 설치할 것
const express = require('express');
const bodyParser = require('body-parser'); // post 데이터를 전달받기 위해 사용
const app = express();
const port = 3001; // 앞의 서버 작업이 끊기지 않고 진행되서 포트 번호를 바꾸거나 vscode를 껐다 켜야한다.
//body-parser를 이용해 application/ x-www-form-urlencoded 파싱
app.use(bodyParser.urlencoded({ extended: false }));
app.use((req, res) => {
const userid = req.body.userid;//서버에 아이디 요청 (post)
const userpw = req.body.userpw; // 서버에 비번 요청 (post)
console.log(`paramId : ${userid}, paramPw : ${userpw}`)
/*
Nodemon
서버 코드를 변경할 때마다 저장만 하면 바로 서버를 재시작하도록 하는 모듈
[Nodemon설치방법]
1. $ npm install -g nodemon
2. package.json의
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},를
"scripts": {
"start": "nodemon 06-4.js"
},로 변경 후
3. $ npm i body-parser
4. $ npm start
5. 저장하면 브라우저 실시간 실행 확인
(되지 않을 시(이유:충돌) vscode 껐다 켜거나 port번호 바꾸기)
*/
res.writeHead(200, { 'content-type': 'text/html;charset=utf-8' });
res.write('<h2>익스프레스 서버에서 응답한 메세지입니다.</h2>');
res.write(`<p>아이디 : ${userid}</p>`);
res.write(`<p>패스워드 : ${userpw}</p>`);
res.end();
});
app.listen(port, () => {
console.log(`${port}포트 서버 실행 중...`);
})
Router 미들웨어
사용자의 다양한 요청이 들어왔을때 use() 메소드로 설정한 미들웨어가 항상 호출되는 불편한점이 있습니다.
이를 해결하고자 사용하는 미들웨어가 Router 미들웨어입니다.
Router 객체 만들기
const 라우터객체 = express.Router();
http://localhost:3000/member/login
라우터객체.route(요청패스).get(실행할 함수);
라우터객체.route(요청패스).post(실행할 함수);
익스프레스에 Router 객체 적용
app.use('/', 라우터객체);
06-5.js
const express = require('express');
const bodyParser = require('body-parser'); // post 데이터를 전달받기 위해 사용
const app = express();
const port = 3001; // 앞의 서버 작업이 끊기지 않고 진행되서 포트 번호를 바꾸거나 vscode를 껐다 켜야한다.
const router = express.Router();
// body-parser를 이용해 application/ x-www-form-urlencoded 파싱
app.use(bodyParser.urlencoded({ extended: false }));
// http://localhost:3001/member/login -> post
router.route('/member/login').post((req, res) => {// 127.0.0.1/member/login
console.log('/menber/login 호출!');
});
// http://localhost:3001/member/regist-> post
router.route('/member/regist').post((req, res) => {// 127.0.0.1/member/regist
console.log('/menber/regist 호출!');
});
// http://localhost:3001/member/about -> get
router.route('/member/about').get((req, res) => {// 127.0.0.1/member/about
console.log('/menber/about 호출!');
});
app.use('/', router);
// 에러가 발생했을 때
app.all('*', (req, res) => {
res.status(404).send(`<h2>페이지를 찾을 수 없습니다.</h2>`);
});
app.listen(port, () => {
console.log(`${port}포트 서버 실행 중...`);
});
07-1.js
const express = require('express');
const bodyParser = require('body-parser'); // post 데이터를 전달받기 위해 사용
const app = express();
const port = 3001; // 앞의 서버 작업이 끊기지 않고 진행되서 포트 번호를 바꾸거나 vscode를 껐다 켜야한다.
// 미들웨어 사용법1
app.get('/', function(req, res){
res.send('Hello, world');
})
const myLogger = function () {
console.log('LOGGEED')
}
app.use(myLogger);
app.listen(port, () => {
console.log(`${port}포트 서버 실행 중...`);
});
07-2.js
const express = require('express');
const bodyParser = require('body-parser'); // post 데이터를 전달받기 위해 사용
const app = express();
const port = 3001; // 앞의 서버 작업이 끊기지 않고 진행되서 포트 번호를 바꾸거나 vscode를 껐다 켜야한다.
// 미들웨어 사용법2
app.get('/', function(req, res, next){
res.send('Hello, world2');
next();// 다음 미들웨어로 이동하는 메소드
})
const myLogger = function (req, res, next) {
console.log('LOGGEED');
next();
}
app.use(myLogger);
app.listen(port, () => {
console.log(`${port}포트 서버 실행 중...`);
});
text 정리
Nodemon
서버 코드를 변경할 때마다 서버를 재시작하도록 하는 모듈
npm install -g nodemon
-g: 글로벌 설치
"scripts": {
"start": "nodemon 06-4.js"
},
npm start 라고 실행하고 그다음부터는 저장하기만 해도 서버열지않고 업데이트됨
body-parser(post방식)
설치 npm i body-parser
node.js
const userid = req.query.userid;
http://localhost:3000/?userid=apple
query : 클라이언트에서 GET방식으로 전송한 요청 파라미터를 확인합니다.
body : 클라이언트에서 POST방식으로 전송한 요청 파라미터를 확인합니다.
(단, post방식을 통한 요청 파라미터를 확인하려면 body-parser와 같은 모듈을 사용해야합니다.)
const userid = req.body.userid;
Router 미들웨어
사용자의 다양한 요청이 들어왔을때 use() 메소드로 설정한 미들웨어가 항상 호출되는 불편한점이 있습니다.
이를 해결하고자 사용하는 미들웨어가 Router 미들웨어입니다.
Router 객체 만들기
const 라우터객체 = express.Router();
http://localhost:3000/member/login
라우터객체.route(요청패스).get(실행할 함수);
라우터객체.route(요청패스).post(실행할 함수);
익스프레스에 Router 객체 적용
app.use('/', 라우터객체);
'코리아 IT아카데미 > node.js~~~' 카테고리의 다른 글
2022_0126 | node ejs, jade, remail(0124) (0) | 2022.01.26 |
---|---|
2022_0124 | 0119와 내용 중복 (0) | 2022.01.26 |
2022_0117 | FileSystem 모듈, http 모듈, 시스템 이벤트, 익스프레스 모듈 (0) | 2022.01.25 |
2022_0114 | 노드 오류와 예외처리 (0) | 2022.01.25 |
2022_0112 | node 기초 (0) | 2022.01.25 |