[NodeJs] Express : request is not defined 해결법

[NodeJs] Express : request is not defined 해결법

React 로 Front 부분을 개발하고, Back을 Node의 Express 로 다음과 같이 구성했는데

axios로 post 요청을 보냈더니, request is not defined 에러가 자꾸 발생했다.

아무리 봐도 잘 보냈고, 데이터를 바인딩하지만 않으면 에러가 나지않아서 삽질을 해본끝에

const express = require("express"); const app = express(); const api = require("./routes/index"); const user = require("./routes/user"); const port = 3002; const cors = require("cors"); //서버가 실행되면 mariaDB 연결 const maria = require("./routes/mariraDB"); maria.connect(); //.cors에러 해결 app.use(cors()); //경로 app.use("/api", api); app.use("/user", user); app.listen(port, () => console.log(`Listening on port ${port}`));

아래와 같이 body-parser을 사용한다고 선언해줘야 req 든 res든 데이터가 전달된다는것을 알 수 있었다.!

const express = require("express"); const app = express(); const api = require("./routes/index"); const user = require("./routes/user"); const port = 3002; const cors = require("cors"); let bodyParser = require("body-parser"); //서버가 실행되면 mariaDB 연결 const maria = require("./routes/mariraDB"); maria.connect(); //.cors에러 해결 app.use(cors()); // req, res에서 body를 사용하기 위해서 우선순위 제일 위에 app.use(bodyParser.json()); //app.use(express.json()); //경로 app.use("/api", api); app.use("/user", user); app.listen(port, () => console.log(`Listening on port ${port}`));

참고로 최신 버전의 Express를 사용하면 body-parser를 따로 사용하지 않고 아래의 코드로 대체 가능하다.

app.use(express.json());

from http://seung-min.tistory.com/26 by ccl(A) rewrite - 2021-09-13 22:26:11