const http = require('http');
let server = http.createServer(function (request, response) {
response.end('<h1>Hello JS!</h1>')
});
server.listen(3000); // 외부로 부터 요청을 받을 수 있게끔 한다. 포트번호를 의미
URL 쪼개기
let url = new URL('https://kr.investing.com/equities/united-continenta');
console.log(url.protocol);
console.log(url.host);
console.log(url.pathname);
console.log(url.search);
라우팅 해보기
const http = require('http');
users = ['Tom', 'Andy', 'Jessica', 'Paul'];
let server = http.createServer(function (request, response) {
if(request.url === '/'){ // 호스트뒤에 아무것도 없으면 '/'이 붙어있는걸로 친다.
response.end('<h1>Welcome!</h1>');
} else if(request.url === '/users') {
response.end('<h1>' + users + '</h1>');
} else {
response.end('<h1>Page Not Available</h1>')
}
});
server.listen(3000); // 외부로 부터 요청을 받을 수 있게끔 한다. 포트번호를 의미
http 모듈로 라우팅할 경우 (번호에 따른 사람 이름 출력)
const http = require('http');
users = ['Tom', 'Andy', 'Jessica', 'Pual'];
let server = http.createServer(function (request, response) {
if(request.url === '/'){
response.end('<h1>Welcome!</h1>');
} else if(request.url === '/users') {
response.end('<h1>' + users + '</h1>');
} else if (request.url.split('/')[1] === 'users') {
let userIdx = request.url.split('/')[2];
let userName = users[userIdx - 1];
response.end('<h1>' + userName + '</h1>')
} else {
response.end('<h1>Page Not Available</h1>')
}
});
server.listen(3000); // 외부로 부터 요청을 받을 수 있게끔 한다. 포트번호를 의미
Airbnb 코드스타일 적용
const http = require('http');
const users = ['Tom', 'Andy', 'Jessica', 'Pual'];
// Arrow Function 형태로 바꾸기, 상수 const로 바꾸기
const server = http.createServer((request, response) => {
if(request.url === '/'){
response.end('<h1>Welcome!</h1>');
} else if(request.url === '/users') {
response.end(`<h1>${user}</h1>`);
} else if (request.url.split('/')[1] === 'users') {
const userIdx = request.url.split('/')[2];
const userName = users[userIdx - 1];
// 템플릿 문자열 사용
response.end(`<h1>${userName}</h1>`)
} else {
response.end('<h1>Page Not Available</h1>')
}
});
server.listen(3000); // 외부로 부터 요청을 받을 수 있게끔 한다. 포트번호를 의미
하지만 이렇게 매번 split()
을 써서 이런 작업을 하나하나 걸어주기 쉽지 않다.
그래서 사용하는 Express 서드파티모듈
Node.js
가 자바스크립트 실행환경이라면
Express
는 node.js에서 실행될 서버 프로그램을 간편하게 만들 수 있게 해주는 프레임워크이다.
const http = require('http');
const express = require('express');
const app = express();
const users = ['Tom', 'Andy', 'Jessica', 'Pual'];
// // Arrow Function 형태로 바꾸기, 상수 const로 바꾸기
// const server = http.createServer((request, response) => {
// if(request.url === '/'){
// response.end('<h1>Welcome!</h1>');
// } else if(request.url === '/users') {
// response.end(`<h1>${user}</h1>`);
// } else if (request.url.split('/')[1] === 'users') {
// const userIdx = request.url.split('/')[2];
// const userName = users[userIdx - 1];
// // 템플릿 문자열 사용
// response.end(`<h1>${userName}</h1>`)
// } else {
// response.end('<h1>Page Not Available</h1>')
// }
// });
// server.listen(3000); // 외부로 부터 요청을 받을 수 있게끔 한다. 포트번호를 의미
app.get('/', (request, response) => {
response.end('<h1>Welcome!</h1>');
});
app.get('/users', (request, response) => {
response.end(`<h1>${users}</h1>`);
});
app.get('/users/:id', (request, response) => { // split을 사용하지 않아도 된다.
const userName = users[request.params.id - 1];
response.end(`<h1>${userName}</h1>`);
});
app.get('*', (request, response) => { // '*'은 모든 path를 의미하며 위의 코드를 거쳐서 해당사항 없으면 이 코드를 실행
response.end('<h1>Page Not Available!</h1>');
});
app.listen(3000);
Uploaded by Notion2Tistory v1.1.0