在heroku上的Node.js,不能读取未定义的属性'env'
我有一个节点服务器设置端口使用
.listen((process.env.PORT || 5000));
我在这里从Github上的Herokutesting代码中获得。 这工作较早,但现在我在我的Heroku日志中得到以下错误,
}).listen((process.env.PORT || 5000)); at Object.<anonymous> (/app/index.js:35:19) TypeError: Cannot read property 'env' of undefined
我也尝试在本地运行这个工头运行节点index.js,这也工作较早。 这现在崩溃,除非我改变端口始终设置为5000.任何帮助解决这个问题,非常感谢。
更新
我尝试在本地运行节点(因为我得到相同的错误),variables进程设置,并具有属性.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));
它似乎为我工作正常:
服务器(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