从同一应用程序内部调用节点路由

时间:2014-10-06 15:46:31

标签: javascript node.js api

假设我有一个暴露路由的nodejs应用程序:

app.get('/something/resource', function(req, res) { // ... });

该路由既可用于公共路由,也可用于应用程序本身。我希望从同一个应用程序在函数内部调用此路由并处理它的响应。 我最接近的方法是使用请求模块:

request(req.headers.host + '/something/resource', function(err,res,body) { //... });

但是我得到的错误是“无效的协议:127.0.0.1”“

如果我不使用主机头,我会收到“无效的URI'/ something / resource”

知道如何从内部访问应用程序的API?

1 个答案:

答案 0 :(得分:0)

“无效协议”可能意味着它缺少URL前面的协议说明符(某些“http://”),请尝试:

request("http://" + req.headers.host + '/something/resource', function(err,res,body) { //... });

还有两点: 作为主持人,您可以将其硬编码为“localhost”,我期待。并记住端口:通常,调用node.js来侦听其他端口(默认的http端口80)。所以最好将端口添加到url:

request("http://" + req.host + ":" + req.port + '/something/resource', function(err,res,body) { //... });