如何在已部署的Heroku节点应用程序上获取基本url变量

Rya*_*ron 2 javascript heroku node.js

我尝试了以下操作,但不起作用:

console.log(process.env.BASE_URL);   #output: undefined
Run Code Online (Sandbox Code Playgroud)

假设我的heroku应用的主机名是:https : //RyanCameron-app.herokuapp.com

我应该如何在heroku上获取该base_url?

我正在寻找一种解决方案,以避免分别取消注释/注释以下行:

const url = 'https://RyanCameron-app.herokuapp.com/projects/eovendo' //production 
//const url = 'http://localhost:3000'                                //development
Run Code Online (Sandbox Code Playgroud)

变得很烦..

Seb*_*sen 5

后端

这将检查您是否处于生产或开发模式,并根据模式分配相应的url。

const production  = 'https://examplePage.com';
const development = 'http://localhost:3000/';
const url = (process.env.NODE_ENV ? production : development);
Run Code Online (Sandbox Code Playgroud)

说明: process.env.NODE_ENV将解析为undefined您是否在localhost 生产模式下运行。并返回production,如果你已经部署了应用程序的生产模式

注意:仅仅因为您已经部署了应用程序,并不一定意味着您已经更改了NODE_ENV


前端

利用JavaScript窗口提取网址

const url = window.location.origin;
Run Code Online (Sandbox Code Playgroud)