ํฌ์คํ (6)๊น์ง ์์ฑํ๋ ํ๋ก์ ํธ๋ app.js ์์์ ์ฝ๋๊ฐ ๊ธธ๊ฒ ๋์ด๋์ด ์๋ ํ์์ด์๋ค.
๋ ธ๋์ ๋ชจ๋ ์์คํ ์ ํ์ฉํด์ requestHandler๋ฅผ ๋ง๋ค์ด๋ฌ๊ณ , app.js๋ฅผ ๊ฐ๋ณ๊ฒ ๋ฐ๊พธ์ด๋ณธ๋ค.
app.js : ๋จ 4์ค!
const http = require('http');
const routes = require('./routes');
const server = http.createServer(routes);
server.listen(3000);
routes.js : app.js์ ์ฃผ๋ ์ฃผ๋ ๋ฌ๋ ค์๋ ์๋ต, ์์ฒญ, ํ์ผ์์คํ ๋ก์ง์ ์ ๋ถ ์ฎ๊ฒจ์ฃผ์๋ค.
module.exports = requestHandler; <- ๋ง์ง๋ง ์ค์ธ ํด๋น ๋ผ์ธ์ด ์ค์!
requestHandler๋ฅผ ๋ด๋ณด๋ธ ๊ฒ์ด๋ค.
const fs = require('fs');
const requestHandler = (req, res) => {
const url = req.url;
const method = req.method;
if (url === '/') {
res.write('<html>');
res.write('<head><title>My First Page</title></head>');
res.write(
'<body><form action="/message" method="POST"><input type="text" name="message"><button = "submit">Send</button></form></body>');
res.write('</html>');
return res.end();
}
if (url === '/message' && method === 'POST') {
const body = [];
req.on('data', (chunk) => {
console.log(chunk);
body.push(chunk);
});
req.on('end', () => {
const parsedBody = Buffer.concat(body).toString();
console.log(parsedBody);
const message = parsedBody.split('=')[1];
console.log(message);
fs.writeFileSync('message.txt', message);
});
res.statusCode = 302;
res.setHeader('Location', '/')
return res.end();
}
res.setHeader('Content-Type', 'text/html');
res.write('<html>');
res.write('<head><title>My First Page</title></head>');
res.write('<body><h1>Hello from my Node.js Server!</h1></body>');
res.write('</html>');
res.end('Hello Node');
}
module.exports = requestHandler;
Node.js ๋ชจ๋ ์์คํ ์์ ํ๊ฐ์ง ์ค์ํ ์ ์
ํ์ผ ๋ด์ฉ์ ์บ์๊ฐ ์ ์ฅ๋๊ณ ์ธ๋ถ์์๋ ์์ ํ ์ ์๋ค๋ ๊ฒ์ด๋ค.
์ธ๋ถ์์ ์ฝ์ ์ ์๋ ๋ด์ฉ๋ง ๋ด๋ณด๋ด๊ธฐ ํ ์ ์๋ค.
module.exports = requestHandler; ๋์ ์ ์ฌ์ฉํ ์ ์๋ ๊ตฌ๋ฌธ์ด ํ๋ ๋ ์๋ค.
๊ฐ๋ ์ฌ๋ฌ ๋ด์ฉ์ ํ๊บผ๋ฒ์ ๋ด๋ณด๋ด๊ธฐ ํ๋ ๊ฒฝ์ฐ,
์๋์ ๊ฐ์ด ๊ฐ์ฒด๋ก ๋ฌถ์ด์ ํ๋์ ๋ด๋ณด๋ด๊ธฐ๋ง ๊ด๋ฆฌํ ์ ์๊ฒ ๋๋ค.
module.exports = {
handler: requestHandler,
someText : 'Some hard coded text'
};
๊ทธ๋ฌ๋ฉด app.js์์๋ ์๋์ ๊ฐ์ด ๋์ํด์ฃผ๋ฉด ๋๋ค.
const http = require('http');
const routes = require('./routes');
const server = http.createServer(routes.handler);
server.listen(3000);
์ด๋ ๊ฒ ํ๋ฉด ํ๋์ ํ์ผ์์ ์ฌ๋ฌ ๋ด๋ณด๋ด๊ธฐ๋ฅผ ํ ์ ์๋ค.
์๋์ ๊ฐ์ด ์์ฑํ ์๋ ์๋ค.
module.exports.handler = requestHandler;
module.exports.someText = 'Some hard coded text';
์ฆ ๋ชจ๋ ๋ด๋ณด๋ด๊ธฐ๋ฅผ ๋ฌถ๋ module.exports๊ฐ ์๊ณ
์์ฑ์ ์ง์ ํ๊ธฐ ๋๋ฌธ์ ์ฌ์ค์ ์ฐจ์ด๋ ์๋ค.
๊ทธ๋ฌ๋ ์ฌ์ค์ module.์ ์๋ตํ์ฌ ์๋์ ๊ฐ์ด ์จ๋ ์๊ด์๋ค.
exports.handler = requestHandler;
exports.someText = 'Some hard coded text';
Node.js์ ์ํด ํน๋ณํ ์ง์ ๋ ๋จ์ถํค์ด๋ฏ๋ก...
์ง๊ธ๊น์ง ๋ถ๋ฌ์ค๊ธฐ ๋ฐ ๋ด๋ณด๋ด๊ธฐ์ ๋ชจ๋ ์์คํ ์ ์๋ฆฌ์ ๋ํด ์์๋ณด์๋ค.