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
通过我的浏览器,我得到了预期的结果,如果你是这么问的。