首页 > 解决方案 > angular2 http.post 请求 req.body 为空

问题描述

我的 Angular 2 应用程序有问题,我正在尝试将 json oberts 发送到我的 mongob 数据库,当我单击帖子时,它会将 _id 发送到我的 mongodb 但是我的 req.body 是空的

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

@Injectable()
export class BookService {

    constructor(private _http:Http){

    }

    getTodos(){
        return this._http.get('/api/v1/book')
            .map(res => res.json());
    }

    saveBooking(booking){
        var headers = new Headers();
        headers.append('Content-Type', 'application/json');

                 
      
        return this._http.post('/api/v1/book' , { b: 'texts.value',
      isCompleted: 'b'}, {headers: headers})
           .map(res => res.json());
            
    }
    
}

这是我的 router.js

var express = require('express');
var router = express.Router();

var mongojs = require('mongojs');
var db = mongojs('mongodb://lee:Zzbawsoldd1@ds163630.mlab.com:63630/bookings_drbookings',['bookings']);

router.get('/book', function(req,res,next){

    db.bookings.find(function(err, bookings){
        if(err){
            res.send(err);
        }else{
            res.json(bookings);
        }
        
    });
});

// Get Single Todo
router.get('/book/:id', function(req, res, next){
    db.bookings.findOne({
        _id: mongojs.ObjectId(req.params.id)
    }, function(err, todo){
        if(err){
           res.send(err); 
        } else {
           res.json(todo);
        }
    });
});




router.post('/book', function(req, res, next){
    /*if(!todo.text || !(todo.isCompleted + '')){
        res.status(400);
        res.json({
            "error": "Invalid Datazz"
        });
    } else {*/
        db.bookings.save(req.body, function(err, result){
            if(err){
                res.send(err); 
            } else {
                res.json(result);
            }
        });
    
});



router.put('/book/:id', function(req, res, next){
    var bookinfo = req.body;
    var updObj = {};
    
    if(bookinfo.isCompleted){
       updObj.isCompleted = bookinfo.isCompleted;
    }
    
    if(bookinfo.text){
        updObj.text = bookinfo.text;
    }
    
    if(!updObj){
        res.status(400);
        res.json({
            "error": "Invalid Data"
        });
    } else {
        db.bookings.update({
            _id: mongojs.ObjectId(req.params.id)
        },updObj, {}, function(err, result){
            if(err){
                res.send(err); 
            } else {
                res.json(result);
            }
        });
    }
});

router.delete('/book/:id', function(req, res, next){
    db.bookings.remove({
        _id: mongojs.ObjectId(req.params.id)
    },'', function(err, result){
        if(err){
            res.send(err); 
        } else {
            res.json(result);
        }
    });
});
module.exports = router;

我对服务器的请求正在运行,但是它没有将 json 对象从我的服务发送到 router.js

标签: angularmongodbhttppost

解决方案


感谢您的帮助,但我找到了解决方案

我的 server.js 文件中有一个错误我在我的快速服务器代码中写了 app.set 而不是 app.use


推荐阅读