npm init
해당 명령어를 통해 node.js 환경을 만들어주자
package.json이 생성되었다.
$ npm i express
express 모듈을 설치해주자. (i는 install을 의미한다)
$ npm i nodemon --save-dev -g
nodemon을 설치하자. 코드의 변경사항이 있을경우 서버를 직접 다시 시작하지 않더라고 변경사항을 적용해준다.
--save-dev : 개발 환경에서만 사용하겠다.
-g : 해당 패키지가 아닌 전체에서 사용하겠다. (global)
const express = require('express');
const app = express();
app.get('/',(req,res)=>{
res.send("Hello World");
});
app.listen(3000,()=>{
console.log("서버 실행중");
});
$ node app.js
$ nodemon app.js
기본 코드를 작성해서 실행해보자.
" : " 콜론을 이용해서 파라미터 값으로 라우팅을 할 수 있다.
app.get('/user/:id',(req,res)=>{
const id = req.params.id;
res.send(`${id}번 USER 페이지`);
});
app.get('/user/:id',(req,res)=>{
// const id = req.params.id;
const {id} = req.params;
res.send(`${id}번 USER 페이지`);
});
{ }를 이용해서 키 값을 넣어서 바로 받을 수 도 있다.
간단한 REST api를 구현해보자
// user 배열을 이용해 rest api 만들어보기.
// GET, POST, PUT, PATCH, DELETE
// 응답은 json 포맷 유지
const express = require('express');
const app = express();
const port = 3000;
// Express 4.16 이전 버전의 경우
// const bodyParser = require('body-parser');
// app.use(bodyParser.json());
// Express 4.16 이후 버전
app.use(express.json());
// app.use(express.urlencoded( {extended : false } ));
const user = [
{
name: 'alex',
age: 25,
},
{
name: 'jane',
age: 20,
},
{
name: 'alex2',
age: 41,
}
]
//Read
app.get('/users',(req,res)=>{
res.send(user);
});
app.get('/user/:id',(req,res)=>{
const { id } = req.params;
if (id >= 0 && id < user.length) {
console.log(user[id]);
res.send(user[id]);
} else {
res.status(404).send("User not found.");
}
});
//Create
app.post('/user',(req,res)=>{
const {name,age} = req.body;
const data = { name, age }; //const data = {"name":name,"age":age};
user.push(data);
console.log("추가된 데이터: ",data);
res.send(data);
});
//Update
app.put('/user/:id', (req, res) => {
const { id } = req.params;
const { name, age } = req.body;
if (id >= 0 && id < user.length) {
console.log("수정 전 : ", user[id]);
if (name !== undefined) user[id].name = name;
if (age !== undefined) user[id].age = age;
console.log("수정 후 : ", user[id]);
res.send("수정 완료");
} else {
res.status(404).send("User not found.");
}
});
//Delete
app.delete('/user/:id',(req,res)=>{
const {id} = req.params;
if (id >= 0 && id < user.length) {
console.log("삭제 전 : ", user);
user.splice(id,1);
console.log("삭제 후 : ", user);
res.send("삭제 완료");
} else {
res.status(404).send("User not found.");
}
});
app.listen(port, () => {
console.log(`Example app listening on port ${port}`)
});
// Express 4.16 이전 버전의 경우
const bodyParser = require('body-parser');
app.use(bodyParser.json());
// Express 4.16 이후 버전
app.use(express.json());
const {name,age} = req.body;
body에 json 데이터를 담아서 서버에 요청을 보냈을때 서버에서 해당 데이터를 받으려면 4.16 이후 버전 부터는
express.json() 모듈을 이용하면 된다.
'Express, Next.js > Express' 카테고리의 다른 글
[Node.js] Node.js, Express, NPM (0) | 2024.04.18 |
---|---|
[express] jsonwebtoken 로그인 구현하기 (0) | 2024.04.17 |
[express] express-session 로그인, 로그아웃 구현하기 (0) | 2024.04.16 |
[express] 미들웨어 적용하기- (2) (0) | 2024.03.18 |
댓글