【发布时间】:2021-03-20 21:06:32
【问题描述】:
以下是参考我之前的问题写的测试文件:model.save() returns an invalid output .
// 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 请求,上述代码在控制器函数 postData 中为 console.log(req.body) 打印 undefined:
【问题讨论】:
-
中间件按照它们在代码中定义的顺序(从上到下)运行。您需要将
body-parser设置移到请求处理代码上方。
标签: javascript node.js express post