- express 를 사용해 편리하게 서버를 구성할 수 있지만, 그전에 util모듈을 이용해 서버를 구성해보자.
1. text/html로 응답
// http 모듈 임포트
const http = require('http');
const server = http.createServer((req, res) => { // req : 요청정보, res : 응답정보
console.log('server start');
// 응답 Header정보 설정
// 1 파라미터 > 응답 상태(status) ex) 200 : 성공 코드
// 2. Content-Type 을 text/html charset=utf-8로 지정해 한글이 깨지지 않도록 함
res.writeHead(200, {'Content-Type' : 'text/html; charset=utf-8'});
res.write('<h1>응답할 text/html 문자열</h1>');
res.write('<p>여러번 호출할 수 있음</p>');
res.end('<p>응답의 끝임을 알림</p>');
});
server.listen(8081, () => { // 8081 포트로 서버 리스닝
console.log('server 8081 port is listening');
});
// 서버 에러 응답 이벤트 리스너
server.on('error', (error) => {
console.error(error);
})
http://localhost:8081/ 호출 결과>
이처럼 <h1>응답할 text/html 문자열</h1> 처럼 text/html을 직접 write해서 응답할 수도 있지만 html 파일을 미리 생성해 놓고 읽어서 응답할 수도 있다.
2. html 파일을 미리 생성하고 html페이지 응답하기
<app.js>
// http 모듈 import
const http = require('http');
// 미리 생성한 html 파일을 읽기 위한 fs 모듈 임포트
const fs = require('fs');
const server = http.createServer((req, res) => { // req : 요청, res : 응답
// 현재 경로의 server1.html 파일 읽기
fs.readFile('./server1.html', (err, data) => {
if(err) throw err; // 실패 예외처리
// 읽은 파일 내용을 응답
res.write(data);
});
});
server.listen(8081, () => {
console.log('8081 server is lisening');
});
<server1.html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>FILE로 읽기</title>
</head>
<body>
<h1>server1.html 페이지 입니다. 반갑습니다.</h1>
</body>
</html>
'스터디 > Node.js' 카테고리의 다른 글
3. 쿠키와 세션에 서버 데이터 담아 전달하기(2) - 세션(Session)편 (0) | 2020.09.14 |
---|---|
2. 쿠키와 세션에 서버 데이터 담아 전달하기-쿠키(Cookie)편 (0) | 2020.09.14 |