Node.js MongoDB-邮递员出错-数据发送失败

Node.js MongoDB-邮递员出错-数据发送失败,node.js,mongodb,mean-stack,postman,Node.js,Mongodb,Mean Stack,Postman,我使用了平均堆栈来构建一个项目。我已经创建了一个可以插入数据的报表 当我从表单中插入数据时,数据被插入到集合中 但当我使用邮递员插入数据时,数据插入失败 以下是代码段: 1.前端表单-report.component.html <form (ngSubmit)="savereportdata()" novalidate> <ba-card> <div class="form-group"

我使用了平均堆栈来构建一个项目。我已经创建了一个可以插入数据的报表

当我从表单中插入数据时,数据被插入到集合中

但当我使用邮递员插入数据时,数据插入失败

以下是代码段:

1.前端表单-report.component.html

            <form (ngSubmit)="savereportdata()" novalidate>
            <ba-card>
                <div class="form-group">
                    <label for="middleItemId">Item ID</label>
                    <input type="text" class="form-control" placeholder="Enter Item ID" [(ngModel)]="itemId" name="itemId">
                </div>
                <div class="form-group">
                    <label for="middleItemName">Item Name</label>
                    <input type="text" class="form-control" placeholder="Enter Item Name" [(ngModel)]="itemName" name="itemName">
                </div>

                <div class="form-group">
                    <label for="warrentyUntil">Warrenty Until</label>
                    <input type="date" readonly="" class="form-control">
                </div>

                <div class="form-group">
                    <label for="reportDescription">Description</label>
                    <textarea class="form-control" rows="3" [(ngModel)]="reportDescription" name="reportDescription"></textarea>
                </div>

                <button type="submit" class="btn btn-primary">Submit</button>
            </ba-card>
        </form>
3.report-item.service.ts

import { Injectable } from '@angular/core';
import { Http,Headers} from '@angular/http';
import 'rxjs/add/operator/map';


@Injectable()
export class ReportItemService {
    reportitem:any;
    constructor(private http:Http) {}
    reportitemdata(reportitem) {
        let headers=new Headers();
        headers.append('Content-Type','application/json');
        return this.http.post("http://localhost:3000/reportItem",reportitem,{headers:headers}).map(res=>res.json());
    }
} 
4.后端模型-report.js

const mongoose = require('mongoose');
const schema = mongoose.Schema;

const reportSchema = new schema({
    itemId: { type: Number, required: true },
    itemName: { type: String },
    reportDescription: { type: String },
    date: { type: Date }
});

module.exports = mongoose.model("ReportItem", reportSchema);
module.exports.saveReportItem = function(newreport, callback) {
    console.log(newreport);
    newreport.save(callback);
};
5.router-reportItem.js

const express = require('express');
const router = express.Router();
const config = require('../config/database');
const ReportItem = require('../models/request-report/report');
router.post("", function(req, res) {

    const newreport = new ReportItem({
        itemId: req.body.itemId,
        itemName: req.body.itemName,
        reportDescription: req.body.reportDescription,
        date: new Date
    });

    ReportItem.saveReportItem(newreport, function(err, report) {
        if (err) {
            res.json({ state: false, msg: "data not inserted" });
        }
        if (report) {
            res.json({ state: true, msg: "data inserted" });
        }
    });
});

module.exports = router;
从表单中插入数据时结果的屏幕截图:

Postman中错误的屏幕截图:

几个星期来我一直在试图解决这个问题,但没能解决


提前谢谢

您可以尝试使用js代码中的模块从请求中获取数据。我以前在这方面遇到过问题。

我在app.js中使用了body解析器模块。错误如下:
ValidationError:ReportItem验证失败:itemId:Path
itemId`是必需的。在MongooseError.ValidationError.inspect(D:\inventory\u api\node\u modules\mongoose\lib\error\validation.js:57:23`您是否尝试过通过邮递员将其作为JSON而不是表单发送?使用
raw
选项和
application/JSON
作为类型。
{itemId:1,itemName:“a name”}
是。状态仍为失败。抱歉,我不确定是否还有其他建议。console.log(newreport)中返回了什么?请求数据是否正确返回?
const express = require('express');
const router = express.Router();
const config = require('../config/database');
const ReportItem = require('../models/request-report/report');
router.post("", function(req, res) {

    const newreport = new ReportItem({
        itemId: req.body.itemId,
        itemName: req.body.itemName,
        reportDescription: req.body.reportDescription,
        date: new Date
    });

    ReportItem.saveReportItem(newreport, function(err, report) {
        if (err) {
            res.json({ state: false, msg: "data not inserted" });
        }
        if (report) {
            res.json({ state: true, msg: "data inserted" });
        }
    });
});

module.exports = router;