Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
你知道为什么这个简单的ExpressJS应用程序不支持Heroku环境变量吗?_Heroku_Express - Fatal编程技术网

你知道为什么这个简单的ExpressJS应用程序不支持Heroku环境变量吗?

你知道为什么这个简单的ExpressJS应用程序不支持Heroku环境变量吗?,heroku,express,Heroku,Express,我正在创建一个简单的HTTP->HTTPS转发服务器,如下所述: 我敢肯定我一定忽略了一些简单的事情,但即使日志将我的DEVMODE打印为false,它也无法在*路由处理程序中捕获它。它正好过了线 var port = process.env.PORT || 1337; var express = require('express'); var app = express(); var path = require('path'); var fs = require('fs'); conso

我正在创建一个简单的HTTP->HTTPS转发服务器,如下所述:

我敢肯定我一定忽略了一些简单的事情,但即使日志将我的DEVMODE打印为false,它也无法在*路由处理程序中捕获它。它正好过了线

var port = process.env.PORT || 1337;
var express = require('express');
var app = express();
var path = require('path');
var fs = require('fs');

console.log("DEVMODE= " + process.env.DEVMODE);   //outputs DEVMODE=false

app.get('*',function(req,res,next){
    if (process.env.DEVMODE == false){
//-----NOTHING REACHES THIS POINT though it just said process.env.DEVMODE = false
      if( req.headers['x-forwarded-proto'] != 'https' )
          res.redirect('https://mydomain.com'+req.url)
      else
          next() /* Continue to other routes if we're not redirecting */
   } else {
//-----Goes straight to here.
     next();
   }
})

app.use(express.static(__dirname));
app.listen(port);
我肯定我忽略了一些非常简单的事情。知道为什么没有调用process.env.DEVMODE if语句中的代码吗


非常感谢

环境变量是字符串,请尝试以下操作:

if (process.env.DEVMODE == "false") {
  ...
}

环境变量是字符串,请尝试以下操作:

if (process.env.DEVMODE == "false") {
  ...
}