【发布时间】:2019-02-09 05:06:17
【问题描述】:
我是 Mean stack 的新手。我无法使用 nodejs 中的 post 方法将任何数据插入 mongoDB。在这里,我添加了所有相关的 nodejs 代码。 . . . . . . . . . .
index.js
const express = require('express');
const bodyParser = require('body-parser');
const { mongoose } = require('./db.js');
var employeeController = require('../node/controller/employeeController');
var app = express(); //calling express
app.use(bodyParser.json()); //congigure express to send JSON data
var urlencoded_body_parser = bodyParser.urlencoded({
extended: true
});
app.listen( 3000, () =>
console.log("Server started successfully at Port 3000.")
);
app.use('/employees' , employeeController);
app.use(urlencoded_body_parser);
employee.js
const mongoose = require('mongoose');
var Employee = mongoose.model('Employee',{
name : String ,
position : String ,
office : String,
salery : Number
})
module.exports = { Employee };
employeeController.js
const express = require('express')
var router = express.Router();
var ObjectId = require('mongoose').Types.ObjectId;
var { Employee } = require('../model/employee');
router.post('/', (req,res) => {
var emp = new Employee({
name : req.body.name,
position : req.body.position,
office : req.body.office,
salary : req.body.salary
});
emp.save((err,doc) =>{
if (!err){
res.send(doc);
console.log(doc);
} else {
console.log("Operation Failed : " + JSON.stringify(err,undefined,2));
}
})
});
router.put('/:id', (req,res)=> {
if (!ObjectId.isValid(req.params.id)) {
return res.status(400).send('No record with the given Id ${req.params.id}');
}
var emp = {
name : String ,
position : String ,
office : String,
salery : Number
};
Employee.findByIdAndUpdate(req.params.id, { $set : emp },(err,docs) => {
if (!err) {
res.send(docs);
} else {
console.log('Error in Updating the Employee details' + JSON.stringify(err,undefined,2))
}
});
});
module.exports = route
当我使用邮递员插入数据时,它只将 _id 和 _v 插入到数据库中。没有我的 JSON 数据。 Postman screenshot
【问题讨论】:
-
您的
req.body.name和其他req.body.*参数是undefined所以首先确保req.body包含正文参数
标签: node.js mongodb post postman mean-stack