MongoDB - Postman出错 - 数据发送失败

时间:2017-12-17 04:32:39

标签: node.js mongodb mean-stack postman

我使用 Mean Stack 来构建项目。我创建了一个报表,可以插入哪些数据。 当我从表单插入数据时,数据被插入到集合中。 但是,当我使用邮递员插入数据时,数据插入失败。

以下是代码段

  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>
    
  2. report.component.ts

        import { NgModule,Component,Pipe,OnInit } from '@angular/core';
        import { ReportItemService } from '../../../services/report-item.service'
    
        @Component({
          selector: 'app-report',
          templateUrl: './report.component.html'
        })
    
        export class ReportComponent implements OnInit {
    
          itemId:Number;
          itemName:String;
          reportDescription:String;
          constructor(public reportservice:ReportItemService) { }
    
    
    
    
          ngOnInit() {
          }      
    
          savereportdata(){         
          const reportitem = {
            itemId:this.itemId,
            itemName:this.itemName,
            reportDescription:this.reportDescription
          };    
    
           this.reportservice.reportitemdata(reportitem).subscribe(res=>{     console.log(res);
          }); 
                  }
            }
    
  3. 报告-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());
    
    
    
        }
        }
    
    1. 后端模型 - report.js

      const mongoose = require('mongoose');
      

      const schema = mongoose.Schema;

      const reportSchema =新架构({

      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);
      

      };

  4. 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;
    

    从表单

    插入数据时的结果屏幕截图

    Data Inserted

    邮递员错误的屏幕截图

    Postman Data Insertion Failed 我一直在试图解决这个问题好几个星期但不能。请帮忙 提前感谢加载

1 个答案:

答案 0 :(得分:0)

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