我有一个使用
设置端口的节点服务器.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));
答案 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