使用节点js作为离子框架

时间:2016-09-18 18:00:46

标签: angularjs node.js ionic-framework

我按照以下教程为我的节点服务器创建了一个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上有一个表单并将此信息发送给我的角度控制器,我的控制器如何获取此信息并向我的服务器发送一个帖子请求?我已经试图解决这个问题好几天了。

1 个答案:

答案 0 :(得分:1)

如果您只想测试后端是否有效,请查看postman

以下是如何重构代码的方法。首先,请注意,就目前而言,您使用$resource的方式实际上并未对API进行任何调用。您应该在应用中的某个控制器或其他服务中注入Bear服务,具体取决于您将如何使用空头。然后,在这个其他服务或控制器中,你会做

var result = Bear.get({ bearId: <value> })var result = Bear.post({ bearId: <value> })

或您想要使用的任何其他http方法。然后,资源对象将使用指定的HTTP操作和您提供的参数自动命中URL端点,然后返回结果。

查看$resource文档以获取更多详细信息。此外,您使用离子的事实与连接API无关。