Angularjs 使用$resource发布请求

Angularjs 使用$resource发布请求,angularjs,node.js,angular-resource,Angularjs,Node.js,Angular Resource,在我的index.js文件中,我有以下帖子 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; //

在我的
index.js
文件中,我有以下帖子

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);
    });
});
我测试url
http://localhost:8080/api/bears
向邮递员发出
POST
请求,并且成功。现在我想使用angular
$resource
测试我的
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做什么,我只是放了一个随机数。我正试图把熊的名字保存为瑜伽士。我假设在我运行应用程序时会发生此
POST
请求,但我会这样做,然后检查我的数据库是否已填充,并且没有条目

我做错了什么

编辑

如果你想知道熊市入口是什么样子

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

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

此外,来自服务器的数据似乎具有
\u id
属性,而不是
id
bearId

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


我会使用这种类型的资源定义

$resource('http://XXX.XXX.X.XX:3000/api/bears/:id', {id:'@_id'});
然后,您可以使用它通过创建一个新的Bear

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