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);
});
});
我测试urlhttp://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'})