Node.js 기본 내용 정리 문서.
Chrome V8 Javascript 엔진으로 빌드된 Javascript 런타임
기존에는 자바스크립트 프로그램을 웹 브라우저 위에서만 실행할 수 있었음. 브라우저에 내장된 JS 런타임을 이용한 것임. NodeJS는 이러한 JS 런타임을 통해 브라우저 밖에서도 JS 프로그램을 실행할 수 있도록함.
노드는 기본적으로 싱글스레드 + 논 블로킹 모델을 사용한다.(JS 언어의 특성)
따라서 NodeJS는 개수는 많지만 크기는 작은 데이터를 실시간으로 주고받는 태스크가 많은 서버로 사용하기에 적합하다.
const http = require('http'); // http module 불러오기
http.createServer((req, res) => {
res.writeHead(200,{ 'Content-Type': 'text/html; charset=utf-8' });
res.write('<h1>Hello Node!</h1>');
res.end('<p>Hello Server!</p>');
})
.listen(8080, () => {
console.log("8080");
})
http.createServer
: 웹서버 실행 함수. 인수로 요청에 대한 콜백 함수를 넣을 수 있다.res.writeHead
: 응답에 대한 정보(응답 헤더)를 기록하는 메소드. res.write
: 응답 body 부분. 클라이언트로 보낼 데이터를 기록한다.res.end
: 응답을 종료하는 메소드. 인수가 있다면 그 데이터도 body로 보내고 종료함.const { fstat } = require('fs');
const http = require('http');
const fs = require('fs').promises;
http.createServer(async (req, res) => {
try {
const data = await fs.readFile('./test.html');
res.writeHead(200,{ 'Content-Type': 'text/html; charset=utf-8' });
res.write('<h1>Hello Node!</h1>');
res.end('<p>Hello Server!</p>');
} catch (err) {
console.error(err);
res.writeHead(500, { 'Content-Type': 'text/html; charset=utf-8' })
res.end(err.message);
}
})
.listen(8080, () => {
console.log("8080");
})