这是我的代码有问题
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){
var todo = req.body;
console.log(todo);
/*if(!todo.text || !(todo.isCompleted + '')){
res.status(400);
res.json({
"error": "Invalid Datazz"
});
} else {*/
db.bookings.save(todo, 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;
import { Injectable } from '@angular/core';
import { 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' , JSON.stringify({ b: 'texts.value',
isCompleted: 'b'}), {headers: headers})
.map(res => res.json());
}
}
我的angular2应用程序存在问题-我创建了一个服务,用于将发帖请求用于mongodb
,但是我的req.body
始终为空。
当我单击发布时,它会发布到我的mongodb
上,但没有从服务中获取数据。
这是我的服务和服务器请求
这是我的代码:
答案 0 :(得分:0)
您使用了错误的http导入。
应该是:
import { HttpClient } from '@angular/common/http';
constructor(private http: HttpClient) {}
然后,您不再需要映射到JSON,因为它是自动完成的。您也不需要对JSON进行字符串化处理或附加这些标头,因为默认情况下,此HttpClient中默认设置了app / json。
答案 1 :(得分:0)
1)您需要使用HttpClient实例
2)标头实例是不可变的,因此您需要在.append()上重新分配标头
3)默认情况下,HttpClient在有效负载上执行JSON.stringify,您无需在发送前对其进行字符串化,否则您将必须在后端修剪掉一对多余的引号。