설치
패키지 의존성 파일 생성(package.json)
npm init
주요 패키디 설치
npm i express // express
npm i -g -D nodemon // 코드 편집 시 자동 재시작(-D 디버그 환경에서만 설치)
npm i dotenv // 환경파일(.env) 사용
npm i morgan // 추가적인 로그 출력
npm i multer // 멀티파트 폼데이터(파일 업로드)
실행
nodemon src/app.js
미들웨어
https://expressjs.com/ko/api.html
const app = express();
app.use(미들웨어); // 모든 요청 시 실행되는 미들웨어 설정
app.use('/page', 미들웨어); // page로 시작되는 요청에서...
app.post('/page', 미들웨어); // page로 시작되는 POST 요청에서...
404 처리, 에러 처리
app.use((req, res, next) => {
res.status(404).send('Not found');
});
app.use((err, req, res, next) => {
console.error(err);
res.status(500).send(err.message);
});
라우터
API 버전 처리
// routeV1.js
const router = express.Router();
router.get('경로', (req, res) => {});
module.exports = router;
// app.js
const routeV1 = require('./routes/routeV1');
app.use('/v1', routeV1);
req, res 객체
- req 객체
- req.app – app 객체 접근
- req.body – bodyParser 미들웨어가 만든 요청 본문 해석
- req.ip
- req.params – 라우트 매개변수에 대한 정보 객체
- req.get(header) – 해더 값에 접근
- res 객체
- res.end()
- res.set(header, value) – 해더 값 설정
- res.status(code) – 상태코드 지정
- res.send(data) – 데이터 응답
- res.redirect(url) – 페이지 이동
Cors
클라이언트와 서버의 호스트가 다른 경우 cors 오류 발생(통산 개발환경에서 발생)
npm i cors
react에서 대처 법
npm i http-proxy-middleware
- package.json에서 proxy 지정
- api 호출 시 호스트 제거(e.g. http://host.com/login -> /login),