求助哦,我将应用部署到AppFog上面,但是无法使用mongoHQ,有用过的麻烦帮忙提供一下使用的方法,不胜感激。
28 回复
我用的MySql,这么整的代码,一次通过,而且以后改应用、改数据库都不用改代码。供参考(我想mongoHQ应该一样的):
//mysql.js
var env=JSON.parse(process.env.VCAP_SERVICES); var db=env[‘mysql-5.1’][0][‘credentials’]; //数据连接参数
var mysql=require(‘mysql’).createPool( { host:db.hostname , port:db.port ,user:db.username ,password:db.password ,database:env[‘mysql-5.1’][0][‘name’] //数据库名称 } );
module.exports=function(cb){ mysql.getConnection(function(err,connection){ cb(err,connection); }) ; };
module.exports = poolModule.Pool({
name: 'with-you-blog-mongo-db',
create: function(callback) {
MongoClient.connect(options.database.url, {
server:{poolSize:options.database.server_option.poolSize,auto_reconnect:options.database.server_option.auto_reconnect},
db:{w:0}
}, function(err, db) {
callback(err,db);
});
},
destroy: function() {},
idleTimeoutMillis: 30000,
max:50,
min:5,
log: false
});
我的是配置的,这个能用了,但是我的MongoStore存储session出问题了,呵呵
@thesadboy 我没用pool, 代码如下
app.use(express.session({
secret: CONFIG.cookieSecret,
cookie: { maxAge: 20 * 60 * 1000 },
store: new MongoStore({
url: dbUrl
})
}));
@xieren58 我的是这样写的
app.use(express.session({
secret : options.database.cookieSecret,
store : new MongoStore({
db : options.database.db
})
}));
然后放到heroku和appfog都报错,然后我就直接改为了
app.use(express.session({
secret : options.database.cookieSecret
})
);
```
去掉了MongoStore就好了。。。。。。