Javascript Express.js req.body打印未定义
/clients端点打印未定义的请求正文 我尝试了所有的案例,但仍然找不到错误 1.used//app.use(express.json)但对我不起作用Javascript Express.js req.body打印未定义,javascript,node.js,express,Javascript,Node.js,Express,/clients端点打印未定义的请求正文 我尝试了所有的案例,但仍然找不到错误 1.used//app.use(express.json)但对我不起作用 当我在浏览器控制台中打印req时,iam无法在req对象中找到body参数 你需要使用 const express = require('express') const userRouter= require('./routes/user.js') const User = require('./models/user.js') var bo
const express = require('express')
const userRouter= require('./routes/user.js')
const User = require('./models/user.js')
var bodyParser = require('body-parser')
const app = express();
const port = process.env.PORT || 4200
app.use(bodyParser.urlencoded({
extended: true
}));
app.use(userRouter)
const router = new express.Router()
app.get('/',(req,res)=>{
debugger
console.log('Hello')
res.send('Hello World')
})
app.post('/clients',async (req,res)=>{
const user = new User(req.body)
debugger
try{
console.log("body "+req.body)
var result = await user.save()
res.status(201).send(result)
}catch(e){
res.status(500).send(e)
}
})
app.use(router);
app.listen(port,()=>{
console.log('Server started at'+port)
})
而不是urlencoded
更多信息-
请设置JSON(应用程序/JSON)
您如何测试
/clients
端点?@evolutionxbox是的,很抱歉,这没有意义。如何确保/clients
正常工作?@evolutionxbox只是将用户信息保存到mongodb中。和有效载荷如下。{“姓名”:“詹姆斯”,“年龄”:28,“手机”:“990884”,“电子邮件”:jamaes@gmail.com“,“password”:“james”}@evolutionxbox我用postman测试它//解析应用程序/x-www-form-urlencoded>app.use(bodyParser.urlencoded({extended:false}))//解析应用程序/json>app.use(bodyParser.json()),我试过了,但没能为我工作,因为我能够从邮递员那里发送有效负载,它会返回我为用户模型保留的验证错误。问题在于req.body。我在浏览器控制台中打印请求时找不到正文。有什么想法吗?如果您使用的是高于Express v4.16.0的版本,您可以删除主体解析器,然后尝试app.use(Express.json());甚至尝试过的app.use(express.json())也不适合我
app.use(bodyParser.json());