我按照以下教程为我的节点服务器创建了一个RESTApi ... https://scotch.io/tutorials/build-a-restful-api-using-node-and-express-4
我的服务器文件现在有一些路由,允许它发出我在Postman上测试的GET和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);
});
});
router.route('/bears/:bear_id')
// get the bear with that id (accessed at GET http://localhost:8080/api/bears/:bear_id)
.get(function(req, res) {
Bear.findById(req.params.bear_id, function(err, bear) {
if (err)
res.send(err);
res.json(bear);
});
});
...etc,etc
现在,由于我使用的是离子框架,我需要将其配置为使用此服务器作为后端。
我的问题是,如何使用angular连接到它?
我的所有路线都使用/api
app.use('/api', router);
所以我尝试了以下......
app.factory('Bear', function ($resource) {
return $resource('http://XXX.XXX.X.XX:3000/api/bears/:bearId');
});
但我不确定这是否有效。我想发一个Post请求,以便我可以测试后端是否正常工作,但我不知道要添加哪些代码。
例如,如果我在index.html
上有一个表单并将此信息发送给我的角度控制器,我的控制器如何获取此信息并向我的服务器发送一个帖子请求?我已经试图解决这个问题好几天了。
答案 0 :(得分:1)
如果您只想测试后端是否有效,请查看postman。
以下是如何重构代码的方法。首先,请注意,就目前而言,您使用$resource
的方式实际上并未对API进行任何调用。您应该在应用中的某个控制器或其他服务中注入Bear
服务,具体取决于您将如何使用空头。然后,在这个其他服务或控制器中,你会做
var result = Bear.get({ bearId: <value> })
或var result = Bear.post({ bearId: <value> })
或您想要使用的任何其他http方法。然后,资源对象将使用指定的HTTP操作和您提供的参数自动命中URL端点,然后返回结果。
查看$resource文档以获取更多详细信息。此外,您使用离子的事实与连接API无关。