【问题标题】:How to call another api via express?如何通过express调用另一个api?
【发布时间】:2017-06-05 17:28:30
【问题描述】:

我的目标是将http://localhost:3000/test 放入我的浏览器并从http://my_virtual_machine:8080/rest/stuff/test 获得响应。

我跟着this tutorial 设置了 Express、mongoose(虽然最终版本不会连接到 Mongo,只连接到 VM 的端点)等。我制作了一个待办事项列表 API,它按预期工作。

但是,我不知道如何使用此 API 调用我的虚拟机。

我阅读了“External API Calls With Express, Node.JS and Require Module”,并在 server.js 中添加了以下内容:

router = express.Router(),
request = require('request');

router.get("/test", function(req,res,next){
    request({
        uri: 'http://my_virtual_machine:8080/rest/stuff/test/',
    }).pipe(res)
})

但是,当我将 http://localhost:3000/test 输入浏览器时,控制台中出现 404 错误。

这是我所有代码的 PLUNKserver.js 包含我为使其正常工作所做的更改。

我是 Express 菜鸟,所以我不确定为什么这不起作用。

【问题讨论】:

  • 你的虚拟机尝试过 cURL 吗?
  • @Dinesh 如果我从浏览器转到http://my_virtual_machine:8080/rest/stuff/test,我会得到预期的结果,如果这就是你的要求。

标签: node.js express


【解决方案1】:

您需要将路由器添加到 express 应用实例。这可以使用

app.use('/test', router);

以上行告诉express 将所有到/test 的请求路由到您的路由器实例。

在您的路由器内部,由于您已经指定了路径,您应该将get 函数更改为

router.get('/', function(req, res, next) {
     request({
         uri: 'http://my_virtual_machine:8080/rest/stuff/test/',
     }).pipe(res)
});

【讨论】:

    猜你喜欢
    • 2017-12-02
    • 2019-01-14
    • 1970-01-01
    • 2021-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-08
    相关资源
    最近更新 更多