이전의 코드
const http = require('http');
const server = http.createServer((req, res) => {
res.write('<h1>Hello Node!</h1>');
res.write('<p>Hello server</p>');
res.end('<p>Hello mm</p>');
})
.listen(8080)
server.on('listening', () => {
console.log('8080번 포트에서 서버 대기 중입니다.')
})
server.on('error', (err) => {
console.error(err)
})
위에서 자동으로 h1, p 등을 html 코드로 인식 못하는 브라우저가 몇 존재한다. 따라서 이러한 경우 html이라는 것을 알려줘야 한다
res.writeHead(200, { 'Content-Type' : 'text/html; charset=utf-8'});
위처럼 write, end로 직접 문자열을 넣어서 하는 것은 너무 비효율 적
const http = require('http');
const fs = require('fs').promises;
const server = http.createServer(async (req, res) => {
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
const data = await fs.readFile('/ch08/index.html')
res.end(data)
})
.listen(8080)
server.on('listening', () => {
console.log('8080번 포트에서 서버 대기 중입니다.')
})
server.on('error', (err) => {
console.error(err)
})
마지막으로 try catch문으로 예외 처리 까지 해주면 된다
const http = require('http');
const fs = require('fs').promises;
const server = http.createServer(async (req, res) => {
try {
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
const data = await fs.readFile('/ch08/index.html')
res.end(data)
} catch (error) {
console.error(error)
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
res.end(error.message)
}
})
.listen(8080)
server.on('listening', () => {
console.log('8080번 포트에서 서버 대기 중입니다.')
})
server.on('error', (err) => {
console.error(err)
})