【问题标题】:How to Get baseURL for node.js API?如何获取 node.js API 的 baseURL?
【发布时间】:2019-01-30 17:00:40
【问题描述】:

我正在我的节点应用程序的后端构建一个 graphql 包装器。我需要让 api 域正确。

很难用谷歌搜索这句话。

const baseURL = `http://localhost:8001/api`

我可以在本地运行它,但是在我部署我的代码后它将无法工作,因为域不同。设置 baseURL 变量的方法有哪些?

【问题讨论】:

    标签: node.js express graphql


    【解决方案1】:

    有几种方法可以实现这一点。

    方法一: 您可以使用标题属性

    var host = req.get('host');
    

    但这只会返回域,在你的情况下

    http://localhost:8001/
    

    所以这可能无法实现您的目标。

    方法二: 在根目录下创建.env文件,然后就可以使用dotenv包访问baseurl了。

    .env 文件中的内容

    BASEURL = http://localhost:8001/api 
    

    现在在你想访问的任何文件中,首先使用 npm 安装 dotenv 包,然后使用以下语法要求该 dotenv 包

    require('dotenv').config();
    

    在你的函数中,使用这个语法从 .env 文件中获取 baseurl

    const baseURL = process.env.BASEURL;
    

    【讨论】:

    • 我在启动 graphql 服务器时需要基本 url,而不是在请求期间。是否有全局 req 对象?
    【解决方案2】:

    使用此标头属性。您可以通过这种方式识别域。
    var host = req.get('host'); var origin = req.get('origin');
    或者
    var host = req.headers.host; var origin = req.headers.origin;

    【讨论】:

      【解决方案3】:
      var host = req.get('host');
      

      主机返回基本 URL,如 (http://localhost:8001/) 或使用域 然后返回域名。

      我已经将主机与“api”连接起来。

      const baseURL = host + 'api';
      

      【讨论】:

      • 这不是在请求期间,这是应用程序的域
      猜你喜欢
      • 2011-11-16
      • 2019-01-24
      • 1970-01-01
      • 2017-07-23
      • 1970-01-01
      • 1970-01-01
      • 2019-01-11
      • 1970-01-01
      • 2015-07-14
      相关资源
      最近更新 更多