반응형
[생활코딩] 홈페이지 구현
Node.js로만 된 코드
var app = http.createServer(function(request,response){
var _url = request.url;
var queryData = url.parse(_url, true).query;
var pathname = url.parse(_url, true).pathname;
if(pathname === '/'){
if(queryData.id === undefined){
fs.readdir('./data', function(error, filelist){
var title = 'Welcome';
var description = 'Hello, Node.js';
var list = template.list(filelist);
var html = template.HTML(title, list,
`<h2>${title}</h2>${description}`,
`<a href="/create">create</a>`
);
response.writeHead(200);
response.end(html);
});
} else {
fs.readdir('./data', function(error, filelist){
...
response.writeHead(200);
response.end(html);
}
} else if(pathname === ''){
...
response.writeHead(200);
response.end(html);
} else {
response.writeHead(404);
response.end('Not found');
}
});
app.listen(3000);
- http.createServer의 인자로 받은 request와 response가 처음부터 끝까지 공유되고 있음
- 정의된 부분과 사용된 부분의 거리차가 큼
Express 코드
const express = require('express');
const app = express();
var fs = require('fs');
var template = require('./lib/template');
app.get('/', function(req, res){
fs.readdir('./data', function(error, filelist){
var title = 'Welcome';
var description = 'Hello, Node.js';
var list = template.list(filelist);
var html = template.HTML(title, list,
`<h2>${title}</h2>${description}`,
`<a href="/create">create</a>`
);
res.send(html);
});
});
app.get('/page', function(req, res){
return res.send('/page');
});
app.listen(3000, () => console.log('Example app listening on port 3000'));
- get이라는 라우트를 이용하면 처리하는 부분에 request, response를 각각 구현
- 필요한 코드끼리 그룹핑이 잘 됨
반응형
'Dev > Nodejs-express' 카테고리의 다른 글
[Nodejs-express] 미들웨어, body-parser, compression (0) | 2020.08.08 |
---|---|
[Nodejs-express] app.post(), res.redirect() (0) | 2020.08.07 |
[Nodejs-express] req.params (0) | 2020.08.07 |
[Nodejs-express] 설치하기 (0) | 2020.08.07 |
[Nodejs-express] Nodejs 웹 프레임워크 Express? (0) | 2020.08.07 |