POST请求使用angular$资源

在我的index.js文件中,我有以下POST …

 router.route('/bears') // create a bear (accessed at POST http://localhost:8080/api/bears) .post(function(req, res) { var bear = new Bear(); // create a new instance of the Bear model bear.name = req.body.name; // set the bears name (comes from the request) // save the bear and check for errors bear.save(function(err) { if (err) res.send(err); res.json({ message: 'Bear created!' }); }); }) .get(function(req, res) { Bear.find(function(err, bears) { if (err) res.send(err); res.json(bears); }); }); 

我testing的邮件地址为http://localhost:8080/api/bears Postman,并且成功。 现在我想用angular$resource来testing我的POST请求。

我尝试了从文档中获得的以下内容…

 app.factory('Profile', function ($resource) { var Bear = $resource('http://XXX.XXX.X.XX:3000/api/bears/:bearId', {bearId:'@id'}); var single_bear = Bear.post({bearId:123}, function(){ single_bear.name = "Yogi"; single_bear.$save(); }); }); 

我不知道我应该用什么来bearId ,我只是把一个随机数字。 我试图把这个熊的名字叫做Yogi 。 我假设这个POST请求会在我运行应用程序时发生,但我这样做,然后检查,看看我的数据库是否填写,没有条目。

我究竟做错了什么?

编辑

如果你想知道什么是熊的条目…

 { "_id": "57ded2302a5ebc050ce3852d", "__v": 0, "name": "" } 

您的资源已configuration为在传递的数据中查找id属性(通过'@id' ),但您的数据正在传递bearId

此外,来自服务器的数据似乎有一个_id属性,而不是idbearId

另外,你正在寻找的资源方法是save() ,而不是post()


我会去这种types的资源定义…

 $resource('http://XXX.XXX.X.XX:3000/api/bears/:id', {id:'@_id'}); 

然后,您可以使用它来创build一个新的熊通过

 Bear.save({_id: 123, name: 'Yogi'})