是否有一种编程方式来了解node.js应用程序是否在Heroku中运行?

at.*_*at. 7 heroku node.js

是否有一些变量或函数我可以调用以了解node.js应用程序是否在Heroku中运行?就像是:

if (process.heroku)
  console.log("I'm in Heroku!");
Run Code Online (Sandbox Code Playgroud)

小智 9

您使用通常的环境变量.只需在你的heroku实例上设置一些变量并检查:

process.env.HEROKU

在heroku cli上你会做: heroku config:set HEROKU=true

您也可以在Web界面上进行设置,有关详细信息,请参阅heroku docs:https: //devcenter.heroku.com/articles/config-vars


Wim*_*ans 6

您无需设置自定义环境变量即可完成此操作.你可以这样做:

if (process.env._ && process.env._.indexOf("heroku"))
   console.log("I'm in Heroku!");
Run Code Online (Sandbox Code Playgroud)

这是可能的,因为在Heroku dyno上_环境变量设置为/app/.heroku/node/bin/node.

  • 这个答案是不正确的(不知道它是如何获得 7 票赞成并被接受的)。`indexOf` 将返回 0 作为有效结果,其计算结果为 false。如果没有计算结果为 true,则返回 -1。这些都不正确。要修复,请更改为 `(process.env._.indexOf("heroku") !== -1)` (2认同)