- Express에서, 라우트는 특정 HTTP 요청, 예를 들어 GET 또는 POST 요청,을 어떻게 처리할지 정의하는 애플리케이션의 경로 또는 엔드 포인트를 말한다.
app.get('/', function(req, res) { res.send('안녕하세요'); });
// /routes/index.js
const express = require('express');
const router = express.Router();
router.get('/', function(req, res) {
res.send('안녕하세요');
});
module.exports = router;
// App.js
const express = require('express');
const app = express();
const router = require('./routes/index');
app.use('/', router);
app.listen(3000);
const express = require('express');
const app = express();
const router = express.Router();
router.get('/', (req, res) => {
res.send('Hello World!');
});
get()
, post()
, put()
,delete()
,all()
등이 있다. "Mapping"은 각 URL 또는 경로에 대한 핸들러 함수(handler function)를 지정하는 것을 말한다. 즉, 웹 요청이 오면 특정 URL 또는 경로에 대한 핸들러 함수가 실행되도록 매핑하는 것.
app.use('/', router);
app.listen(3000, () => {
console.log('Server running on port 3000');
});
URL 파라미터와 Query 파라미터는 두 가지 다른 방식으로 HTTP 요청에 데이터를 전달하는 방법
- URL 파라미터: URL 자체에 파라미터를 포함하여 전달하는 방식이다. URL에서 파라미터의 값이 보여지며, 값은 주소에 포함된 것으로 서버에 전달된다.
/api/users/:id
- Query 파라미터: URL 뒤에 "?" 기호 뒤에 파라미터를 전달하는 방식이다. 값은 주소에 보여지지 않고, HTTP 요청 메시지의 body에 포함된다.
/api/users?id=123
요청의 정보를 보다 효율적으로 전달하고자 할 때, URL 파라미터 또는 Query 파라미터 중 하나를 사용할 수 있다. 서버로 전달하고자 하는 데이터의 정보 수준과 개인적인 선택에 따라 어떤 파라미터를 사용할지 결정할 수 있다.
app.get("/users/:id", (req, res) => {
const id = req.params.id;
const user = users.find(user => user.id === id);
res.send(user);
});
위의 예제에서 /:id
는 /users/
뒤에 오는 값을 파라미터로 처리하겠다는 의미이다.
이렇게 지정한 파라미터는 req.params 객체 안에 들어간다.
따라서 :id
으로 표시된 부분에 담겨 전달된 값은 req.params.id
속성으로 접근할 수 있다.