[英]I create a node app that is working locally. I need help to modify server.js so that it can work on heroku
我创建了一个在本地工作的节点应用程序。 我需要帮助来修改下面的server.js,以便它可以在heroku上工作。
server.js:
var http = require('http');
var session = require('cookie-session');
var port = 9500;
var Assets = require('./backend/Assets');
var API = require('./backend/API');
var Default = require('./backend/Default');
var Chat = require('./backend/Chat');
var Router = require('./frontend/js/lib/router')();
Router
.add('static', Assets)
.add('node_modules', Assets)
.add('tests', Assets)
.add('api', API)
.add(Default);
var checkSession = function(req, res) {
session({
keys: ['nodejs-by-example']
})(req, res, function() {
process(req, res);
});
}
var process = function(req, res) {
Router.check(req.url, [req, res]);
}
var app = http.createServer(checkSession).listen(port, '127.0.0.1');
console.log("Listening on 127.0.0.1:" + port);
Chat(app);
我试过了:
var port = Number(process.env.PORT || 9000);
但这没有用。 我收到此错误:
users-MacBook-Pro-6:project user$ node server
/Users/user/Desktop/project/server.js:3
var port = Number(process.env.PORT || 5000);
TypeError: Cannot read property 'env' of undefined
at Object.<anonymous> (/Users/user/Desktop/project/server.js:3:26)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3
看起来您正在获得未定义的过程变量。 要进行故障排除,您应该执行console.dir(process)
,它将打印出过程变量中的所有内容,包括环境变量。
您也可以尝试执行此操作heroku config:set NODE_ENV=production
每个heroku支持的 heroku config:set NODE_ENV=production
可能与此有关 。
更新资料
要进一步解决问题,您将需要安装日志记录插件 -
heroku addons:create papertrail
安装后,您将能够导航至该加载项,并查看与该部署有关的所有正在记录的消息以及console.dir和console.log打印输出。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.