我有我的node.js应用程序与依赖项
{
"name": "application-name",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node app"
},
"dependencies": {
"express": ">=2.2.0",
"jade": "*",
"stylus": "*",
"mongodb": ">= 0.9.6-7"
}
}
它在我的localhost上工作正常
当我在heroku上托管我的节点应用程序时,我收到以下错误 .
TypeError:Object#在MemoryStore.generate(/ app / node_modules / express / node_modules)的Object.uid(/app/node_modules/express/node_modules/connect/lib/utils.js:121:17)没有方法'randomBytes' /connect/lib/middleware/session.js:204:27)在Object.session上生成(/app/node_modules/express/node_modules/connect/lib/middleware/session.js:288:13)[作为句柄]( /app/node_modules/express/node_modules/connect/lib/middleware/session.js:297:7)在对象的下一个(/app/node_modules/express/node_modules/connect/lib/proto.js:190:15) . cookieParser [as handle](/app/node_modules/express/node_modules/connect/lib/middleware/cookieParser.js:60:5)下一步(/app/node_modules/express/node_modules/connect/lib/proto.js:190) :15)在Object.expressInit [作为句柄](/app/node_modules/express/lib/middleware.js:31:5)下一步(/app/node_modules/express/node_modules/connect/lib/proto.js:190) :15)在Object.query [作为句柄](/app/node_modules/express/node_modules/connect/lib/middleware/query.js:44:5)
我试图逐个删除行,然后到达我删除的地方
app.use(express.session({ secret:'yodawgyo' }));
该应用程序正在给出“Hello World”响应 . 请参阅下面的完整代码 .
var express = require('express');
var crypto = require('crypto');//for gravatar
var passport = require('passport')
, OpenIDStrategy = require('passport-openid').Strategy
, GoogleStrategy = require('passport-google').Strategy
, AOLStrategy = require('passport-aol').Strategy
, YahooStrategy = require('passport-yahoo').Strategy;;
passport.serializeUser(function(user, done) {
done(null, user);
});
passport.deserializeUser(function(obj, done) {
done(null, obj);
});
var app = module.exports = express();
app.configure(function(){
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
app.use(express.cookieParser());
//NO ISSUES WITH HEROKU IF I COMMENTED BELOW LINE
app.use(express.session({ secret:'yodawgyo' }));
app.use(app.router);
});
app.get('/', function(req, res) {
res.send("Hello World");
});
app.listen(process.env.PORT || 5000, function() {
console.log("listening on 5000");
});
请帮帮我 .
1 回答
我遇到了同样的问题 . 它通过向package.json添加“engines”块来解决,它指示Heroku使用特定版本的节点和npm . 您最有可能使用比Heroku默认值0.4.7更新版本的节点
见https://devcenter.heroku.com/articles/nodejs-support#versions