来自同一应用程序内部的调用节点路由

Call node route from inside same application

本文关键字:调用 节点 路由 内部 应用程序      更新时间:2023-09-26

假设我有一个nodejs应用程序,它公开了一个路由:

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

该路由对公众和应用程序本身都可用。我想从同一个应用程序调用函数内部的这个路由,并处理它的响应。我最接近的方法是使用请求模块:

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

然而,我得到的错误是"无效协议:127.0.0.1'"

如果我不使用主机头,我会得到"无效的URI'/某物/资源"

知道我如何从内部访问应用程序的api吗?

"无效协议"可能意味着它在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) { //... });