javascript - 请求正文在 Post 中为空
问题描述
以下是参考我之前的问题编写的测试文件:model.save() 返回无效输出 。
// Imports
var express=require("express")
, mongoose=require("mongoose")
, bodyParser= require('body-parser')
, bodyParser = require("body-parser");
const { Int32 } = require("bson");
// Constants
const app = express()
const PORT=4002
// Create a model
const dataModel=mongoose.model('dataCollection',mongoose.Schema(data))
// Our Schema
var data={
value: Number
}
// Making connection with database
mongoose.Promise= global.Promise;
mongoose.connect('mongodb://localhost/testdb', {
useNewUrlParser:true,
useUnifiedTopology:true
})
// Create the controller to save data
function postData(req,res){
console.log(req.body)
let newData = new dataModel(req.body)
newData.save((err,resp)=>{
if(err) console.log(err)
else res.json(resp)
})
}
// express set root page
app.get('/',(req,res)=> res.send("ROOT PAGE"));
// Set Route for our post request
app.route('/app')
.get((req,res)=>res.send("Nothing here"))
.post(postData);
// body-parser setup
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());
// start listening on server
app.listen(PORT,()=>console.log(`Your application is running on Port: ${PORT}`));
上面的代码为此处显示的 POST 请求
打印 undefined for console.log(req.body)
in controller function :postData
解决方案
您可以想象请求来自顶部并到达底部。
在您访问路线后解析正文是没有意义的。您需要先解析正文,然后访问路线。
// body-parser setup
app.use(bodyParser.urlencoded({extended:true}));
app.use(bodyParser.json());
// express set root page
app.get('/',(req,res)=> res.send("ROOT PAGE"));
// Set Route for our post request
app.route('/app')
.get((req,res)=>res.send("Nothing here"))
.post(postData);
但是 bodyparsers 不再使用。您可以改用app.use(express.json())
推荐阅读
- kubernetes - HorizontalPodAutoscaler:缺少字段“条件”
- javascript - 如何使用 URLSearchParams 仅删除具有相同键的多个键值对之一?
- java - mssql-jdbc 总是抛出 The authenticationScheme NTLM is not valid
- python - Tkinter 中的 UNC 路径
- python - 旋转二维高斯给定参数 a、b 和 c
- slack - Slack:Slack Web API 方法:对话。使用最新和最旧选项时,历史记录方法无法按预期工作
- python - sklearn中是否有设置惩罚阈值的参数?
- git - 如何取消合并我已经合并到开发中的更改
- python - Python Pandas 中的聚合、列创建和连接有问题吗?
- c++ - C++20 函数式函数调用