heroku上的Node.js,无法读取未定义的属性'env'

时间:2015-06-18 07:17:49

标签: javascript node.js heroku

我有一个使用

设置端口的节点服务器
.listen((process.env.PORT || 5000));

我从Github上的Heroku测试代码here获得。这工作较早,但现在我的Heroku日志中出现以下错误,

}).listen((process.env.PORT || 5000));
 at Object.<anonymous> (/app/index.js:35:19)
TypeError: Cannot read property 'env' of undefined

我还尝试使用foreman run node index.js在本地运行它,这也是之前的工作。现在崩溃,除非我将端口更改为始终设置为5000.非常感谢有关解决此问题的任何帮助。

更新

我尝试在本地运行节点(因为我得到相同的错误),设置了变量进程,并且还设置了属性.env。

服务器代码

var server = http.createServer(function(req, res) {
    if (req.url == "/debug") {
        res.writeHead(200);
        res.end(debugPage);
    } else {
        var body = '';
        req.on('data', function (data) {
            body += data;
        });
        req.on('end', function () {
            res.writeHead(200);
            data = parsePostData(body);
            if (JSON.stringify(data) == "{}") {
                res.end("No Data"); 
            } else {
                res.end(process(data));
            }
        }); 
      }
}).listen((process.env.PORT || 5000));

1 个答案:

答案 0 :(得分:1)

这似乎对我很好:

服务器(index.js):

var express = require('express');
var app = express();

app.set('port', (process.env.PORT || 5000));
app.use(express.static(__dirname + '/public'));

app.get('/', function(request, response) {
  response.send('Hello World!');
});

app.listen(app.get('port'), function() {
  console.log('Node app is running on port', app.get('port'));
});

Procfile:

web: node index.js

演示:https://vikashvverma.herokuapp.com/

来源:https://github.com/vikashvverma/Heroku-Sample