본문 바로가기
Q&A해결2018년 3월 15일1분 읽기

Node.js로 간단한 REST API 만드는 방법

개
개발자준호
조회 2921댓글 5
Node.js와 Express로 간단한 REST API를 만들어보려고 합니다. CRUD 기본 구조를 어떻게 잡아야 하는지 감이 안 옵니다. PHP만 하다가 Node.js는 처음인데, 기본적인 구조와 예제를 알려주시면 감사하겠습니다. npm으로 express를 설치한 상태입니다.

댓글 5

김김영삼8년 전
Express로 REST API 기본 구조입니다.

```javascript
const express = require('express');
const app = express();
app.use(express.json());

let items = [];
let nextId = 1;

// CREATE
app.post('/api/items', (req, res) => {
const item = { id: nextId++, ...req.body };
items.push(item);
res.status(201).json(item);
});

// READ ALL
app.get('/api/items', (req, res) => {
res.json(items);
});

// READ ONE
app.get('/api/items/:id', (req, res) => {
const item = items.find(i => i.id === parseInt(req.params.id));
if (!item) return res.status(404).json({error: 'Not found'});
res.json(item);
});

// UPDATE
app.put('/api/items/:id', (req, res) => {
const item = items.find(i => i.id === parseInt(req.params.id));
if (!item) return res.status(404).json({error: 'Not found'});
Object.assign(item, req.body);
res.json(item);
});

// DELETE
app.delete('/api/items/:id', (req, res) => {
items = items.filter(i => i.id !== parseInt(req.params.id));
res.status(204).send();
});

app.listen(3000, () => console.log('Server running on port 3000'));
```

실무에서는 라우터를 분리하고, 컨트롤러 패턴을 사용합니다.
코코딩하는민수8년 전
body-parser 미들웨어도 추가하셔야 해요. Express 4.16 이전 버전이면 별도로 설치해야 합니다.

```bash
npm install body-parser
```
풀풀스택지훈8년 전
에러 핸들링 미들웨어도 추가하시는 걸 추천합니다. try-catch 대신 express-async-errors 패키지를 쓰면 편해요.
서서버지기영호8년 전
DB 연동은 MySQL이면 mysql2 패키지, MongoDB면 mongoose 패키지를 추천드립니다.
개개발자준호8년 전
감사합니다! PHP보다 코드가 훨씬 간결하네요. 라우터 분리하는 방법도 공부해봐야겠습니다.
Ctrl+Enter로 등록