不能通过post方法在节点js中插入数据?

问题描述 投票:0回答:1

我是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

node.js mongodb post postman mean-stack
1个回答
1
投票

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

邮递员可能看起来像这样:enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.