【发布时间】:2020-04-20 22:01:54
【问题描述】:
Express 应用程序没有获取通过 React 应用程序发送的主体,它打印 undefined 但是路径在反应和节点 js 方法中都是正确的,使用 body-parser,主体在反应 js 中有键和值
方法。我找不到问题。
客户端方法。试图调用服务器中定义的 post 方法。
const handleSignUp = () => {
// dispatch(setLoadingState("loading"));
const userData = {
firstName: firstName,
lastName: lastName,
email: email,
password:password
}
var headers = { 'Content-Type': 'application/json' }
axios.post('/api/auth/create',userData, {
headers :{ 'Content-Type': 'application/json' }})
.then(function (response) {
console.log(response);
服务器方法
const express = require("express");
const { MongoClient, ObjectID } = require("mongodb");
const app = express();
const cors = require("cors");
const cookieParser = require("cookie-parser");
const bodyParser = require('body-parser');
const axios=require('axios');
const port = 3001;
// Connection URL
app.use(cors());
app.use(express.json());
app.use(cookieParser());
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
const url = 'mongodb://localhost:27017';
// Database Name
const dbName = 'sample';
// Create a new MongoClient
const client = new MongoClient(url);
// Use connect method to connect to the Server
client.connect(err => {
if (err) {
console.log(err);
process.exit(1);
}
console.log("Connected successfully to server");
const db = client.db(dbName);
app.post("/api/auth/create", (req, res) => {
console.log("AuthService server", req.body.userData);
db.collection("users").insertOne({
firstName: req.body.userData.firstName,
lastName: req.body.userData.lastName,
email: req.body.userData.email,
password: req.body.userData.password
});
res.send("You are a registered user now");
});
app.listen(port, () => console.log(`Example app listening on port ${port}!`));
});```
I can see in log in auth Service method that body is undefined.
log :AuthService server undefined
Error :TypeError: Cannot read property 'firstName' of undefined
【问题讨论】:
-
如果您使用 Postmon 发送请求,请确保在
Body中选择JSON。默认的Text不起作用,会报这个错误。
标签: node.js reactjs express axios body-parser