【问题标题】:cant insert data via post method in nodejs?无法通过 nodejs 中的 post 方法插入数据?
【发布时间】: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


【解决方案1】:

看起来您只向服务器发送原始文本。 要解决此问题,您需要指定您的内容类型为 application/json

在邮递员中它可能看起来像这样:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多