【问题标题】:Call node route from inside same application从同一应用程序内部调用节点路由
【发布时间】:2014-10-07 00:05:16
【问题描述】:

假设我有一个公开路由的 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 吗?

【问题讨论】:

    标签: javascript node.js api


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-11
      • 1970-01-01
      • 2020-10-14
      • 1970-01-01
      • 2020-08-01
      • 2017-08-13
      • 1970-01-01
      相关资源
      最近更新 更多