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
属性,而不是id
或bearId
。
另外,你正在寻找的资源方法是save()
,而不是post()
。
我会去这种types的资源定义…
$resource('http://XXX.XXX.X.XX:3000/api/bears/:id', {id:'@_id'});
然后,您可以使用它来创build一个新的熊通过
Bear.save({_id: 123, name: 'Yogi'})