make sever with node.js javascript -2
4 min readOct 9, 2019
노드 서버 만들기 node.js javascript
const server = http.createServer((request, response) => {let headers = defaultCorsHeader;response.writeHead(200, headers);
// 헤더정보 기입if(request.method === 'POST'){
// method별로 케이스 분류console.log('들어온 req method : post');if(request.url === '/upper'){console.log('to upper case 요청 ');let data = '';request.on('data', chunk => {
//what is request.on()? chunk?data +=chunk; //string으로 변환하기 위한 합연산이군요!response.end(data.toUpperCase());})}else if(request.url === '/lower'){console.log('to upper case 요청 ');let data = '';request.on('data', chunk => {data +=chunk;response.end(Buffer.from(data.toString().toLowerCase()));})}}else if(request.method === 'OPTIONS'){console.log('옵션들어옴');response.end('"hello mini-server sprints"'); //응답}else{response.end('"post메소드를 이용해야 합니다."')}console.log('outer send');});server.listen(PORT, ip, () => {console.log(`http server listen on ${ip}:${PORT}`);});
처음 공부하면서 레퍼런스를 기반으로 수정해 본 코드라 매우 허접하다.
그러나 최소한의 기능을 구현했고, 어떠한 방식으로 실행되는지 다시 살펴보기 위해서 글을 작성한다.
request.method
메소드는 string타입이며, 읽기만 가능하다.
그 종류들은 아래 주소에서 확인 가능하다.
그 중에서 주목해보아야 할 것은,
OPTIONS 이다.
해당 내용은 이전에 작성했던 CORS 주제 포스팅에 존재하므로,
주소를 첨부한다.
response.end([data(String || Buffer)[, encoding]][, callback])
이 메소드는 서버에게 모든 response header와 body가 전송되었다고 알린다.
따라서 이 메소드는 개별 response마다 ‘필수적’으로 호출이 되어야 한다.
만약 data가포함된다면, response.write(data,encoding)과 유사한 결과를 보인다.
data는 2가지 타입이 전달이 가능한데,
String과 Buffer이다.
Buffer.from(string)을 사용한다면 return으로 해당 string내용을 담고 있는 Buffer객체를 받을 수 있다.
response.write() 호출시에는 response.end(callback)이 따라오며,
callback이 포함된 경우, response stream이 finished된 이후 해당 callback이 호출된다.
request.on()
내용이 많아 따로 포스팅 합니다.