npm i http-server
명령어 사용해서 설치
const http = require('http');
const server = http.createServer((req,res)=>{
res.write('welcome!');
res.end(); // 응답을 종료해주는 역할
})
server.listen(8080);
const http = require('http');
const server = http.createServer((req,res)=>{
res.setHeader('content-type', 'text/html');
res.write('<html><body><h1>hi</h1></body></html>')
res.end();
})
server.listen(8080);
html 형태의가 type이 text/html로 나온다.
const http = require('http');
const server = http.createServer((req,res)=>{
res.setHeader('content-type', 'application/json');
res.write('<html><body><h1>hi</h1></body></html>')
res.end();
})
server.listen(8080);
브라우저 출력에 단지
hi
만 뜨는 것이 아닌
<html><body><h1>hi</h1></body></html>
형태의 text가 출력된다.
ex)
request.setHeader('Content-Type', 'application/json');
request.setHeader('Cookie', ['type=ninja', 'language=javascript']);
ex)
const body = 'hello world';
response
.writeHead(200, {
'Content-Length': Buffer.byteLength(body),
'Content-Type': 'text/plain'
})
.end(body);
응답 요소와 그에따르는 반환요소를 준다.
const http = require('http');
const server = http.createServer((req,res)=>{
res.setHeader('content-type', 'application/json');
res.write('<html><body><h1>hi</h1></body></html>')
res.end();
})
server.listen(8080);
const http = require('http');
const server = http.createServer((req,res)=>{
res.writeHead(200,{'content-type' : 'application/json'});
res.write('<html><body><h1>hi</h1></body></html>')
res.end();
})
server.listen(8080);
둘다 실질적으로 결과는 같다.
const fs = require('fs') 파일과 관련한 fs필요
const fs = require('fs');
const http = require('http');
const server = http.createServer((req,res)=>{
const url = req.url;
res.setHeader('Content-Type','text/html');
if(url == '/'){
fs.createReadStream('./index.html').pipe(res);
}
else if(url == '/myHTML'){
fs.createReadStream('./myhtml.html').pipe(res);
}
else{
fs.createReadStream('./notFound.html').pipe(res);
}
});
server.listen(8080);
전체 파일을 전부 읽어서 클라이언트로 전송한다
fs.readFile('./index.html',(err,data)=>{
if(err) throw err;
res.end(data);
});
처리 할 대상인 data가 비동기로 처리
let data = fs.readFileSync('./index.html');
res.end(data);
처리 할 대상인 data가 동기적으로 받아 처리
fs.promises.readFile('./index.html').then(data=>res.end(data));
전체 파일을 메모리에 로드하는 동안 fs.createReadStream은 전체 파일을 지정한 크기의 chunk로 읽는다.
fs.createReadStream을 이용하면 클라이언트가 데이터를 더 빠르게 받을 수 있다.
fs.readFile('./index.html').pipe(res);