반응형
전체 코드
const express = require('express')
const app = express()
const port = 3000
app.get('/', (req, res) => {
res.send('Hello World!')
})
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`)
})
설명
const express = require('express')
express 모듈을 가져와 express에 넣는다. express는 후에 바뀔 값이 아니므로 const, 즉 상수로 선언한다.
const app = express()
express<함수>의 return된 값을 상수 app에 담는다.
app
app은 application 객체가 담기도록 약속되어 있다. Express 공식 홈페이지에서 API 참조에 들어가면 application 객체가 가지고 있는 함수들을 모두 볼 수 있다.
app.get()
객체의 많은 함수(=메소드. method)들 중에서 .get()을 살펴보자.
app.get(path, callback)
app.get('/', (req, res) => { res.send('Hello World!') })
첫 번째 인자로 path인 /을, 두 번째 인자로는 path로 접속사가 들어왔을 때 호출될 함수를 작성한다. 위 함수의 형태는 축약형으로, 아래 코드와 동일하다.
app.get('/', function(req, res){
return res.send('Hello World!')
})
get()함수는 route, routing이라고도 한다. 즉, 사용자마다 여러 path를 통해 들어올 때, path마다 적당한 응답을 주는 것이다.
만약 코드를 아래와 같이 작성해보자.
app.get('/', function(req, res){
return res.send('/')
});
app.get('/page', function(req, res){
return res.send('/page')
});
즉, app.get메소드의 첫 번째 인자로 path를 전달하여 routing을 한다. 이와 동일한 코드가 이전 코드는 아래와 같다.
if(pathname === '/'){
...
}else if(pathname === '/page'){
...
if문이 많아 복잡한 이전 코드에 비해 현재 Express를 이용한 코드가 훨씬 짧고 깔끔하지 않은가?
app.listen()
app.listen(port, () => console.log(`Example app listening at http://localhost:${port}`))
listen메소드가 실행될 때 웹 서버가 실행된다.
첫 번째 인자로 포트 번호인 3000을 주게 되면, 3000번 포트를 listening하고, 이에 성공하게 되면 콜백함수가 실행되도록 약속되어 있다.
이 코드는 이전 코드로 아래와 동일하다.
app.listen(3000);
반응형
'Back-End > Node.js' 카테고리의 다른 글
Express - 5.1. 상세페이지구현 1 - Route Parameter (0) | 2020.09.04 |
---|---|
Express - 4. 홈페이지 구현 (0) | 2020.09.04 |
Express - 3.1. Hello Word 1 (0) | 2020.09.04 |
Express - 2.실습준비 (0) | 2020.09.03 |
Express - 1.Express란? (0) | 2020.09.03 |