Node.js 如何通过express调用另一个api?

Node.js 如何通过express调用另一个api?,node.js,express,Node.js,Express,我的目标是把http://localhost:3000/test进入我的浏览器并从http://my_virtual_machine:8080/rest/stuff/test 我接着介绍了setupexpress、mongoose(尽管最终版本不会连接到Mongo,只连接到VM的端点),等等。我制作了一个to-do列表API,它按照预期工作 然而,我不知道如何用这个API调用我的VM 我阅读了“”,并在server.js中添加了以下内容: router = express.Router(), r

我的目标是把
http://localhost:3000/test
进入我的浏览器并从
http://my_virtual_machine:8080/rest/stuff/test

我接着介绍了setupexpress、mongoose(尽管最终版本不会连接到Mongo,只连接到VM的端点),等等。我制作了一个to-do列表API,它按照预期工作

然而,我不知道如何用这个API调用我的VM

我阅读了“”,并在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错误

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


我是一个Express noob,所以我不确定这为什么不起作用。

您需要将路由器添加到Express app实例中。这可以通过使用

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)
});

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

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)
});

你有没有为你的虚拟机尝试cURL?@Dinesh如果我去
http://my_virtual_machine:8080/rest/stuff/test
如果您要求的话,我可以从我的浏览器中获得预期的结果。您是否尝试过为您的虚拟机创建cURL?@Dinesh如果我转到
http://my_virtual_machine:8080/rest/stuff/test
通过我的浏览器,我得到了预期的结果,如果你是这么问的。