2014-10-12 19 views
0

我的REST API发布空对象。在node.js上使用app.post和AngularJS + mongoose的空对象

我从req.body.name

所获得的价值。如果我登录它的console.log(req.body.name);我得到我的控制台上的价值。

POST: 
{ name: 'typing any name', status: null } 
typing any name 

所以我的前端之间的工作流程(angular.js),形式和后端(node.js的,快递,猫鼬)似乎工作。现在我发布这个值,但是我在我的mongoDB中得到一个空对象。

{ “_id”: “543a50a974de6e2606bd8478”, “__ V”:0}

app.post('/api/offers', function (req, res){ 
var offer; 
console.log("POST: "); 
console.log(req.body); 
console.log(req.body.name); 
offer = new OfferModel({ 
name: req.body.name, 
value: req.body.value, 
title: req.body.title, 
content: req.body.content, 
}); 
offer.save(function (err) { 
if (!err) { 
    return console.log("created offer" + req.body.name); 
    } else { 
    return console.log(err); 
    } 
}); 
return res.send(offer); 
}); 

这里是模型:

var offerSchema = mongoose.Schema({ 

offer   : { 
     name  : String, 
     value  : String, 
     title  : String, 
     content  : String, 
     image  : String, 
     start  : String, 
     end   : String, 
     targets  : String, 
     beacons  : String, 
     published : String 
} 
}); 
var OfferModel = mongoose.model('Offer', offerSchema); 

回答

1

模式不正确,必须是这样的:

var offerSchema = mongoose.Schema({ 
    name  : String, 
    value  : String, 
    title  : String, 
    content  : String, 
    image  : String, 
    start  : String, 
    end   : String, 
    targets  : String, 
    beacons  : String, 
    published : String 
}); 
+0

谢谢!它解决了这个问题... – Marcel 2014-10-12 12:18:24

+0

不客气)) – karaxuna 2014-10-12 12:18:38