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'})
- 从脚本文件而不是从CLI运行Angular CLI脚本? 本地化/国际化
- 堆栈“错误:证书链中的自签名证书”当试图build立“节点gypconfiguration”
- 如何在Angular 4 / expressJS服务器上直接运行项目(没有webpack)
- 当网站上的文档已过期时,如何安装Angular2?
- 非法破坏声明。 的NodeJS
- Angular 4 CanActivate guard不会加载与服务一起使用的组件; 简单的Observable.of(true)作品
- NPM开始 – 权限错误
- Angular4和Devextreme调度程序
- 使用Maven,量angular器和Selenium WebDriver进行集成testing