我正在使用mongodb和mongoose来处理我的数据库需求。我目前有这个:
mongoose.connect(secrets.db, {server:{poolSize: 1}});
mongoose.connection.on('error', function() {
console.error('MongoDB Connection Error. Make sure MongoDB is running.');
});
作为我的mongo连接。我想更改它,以便每个登录的用户(使用护照)获得自己的数据库。所以,当我show dbs
时,我希望看到user_ObjectID_database_name
如何修改我的代码才能获得此结果?我想要它,因为我相信它对我的研究更安全。然而,我无法找到关于如何做到这一点的任何好的指南。我相信他们存在,但我已经花了4个小时的时间看起来没有运气,即便是一个我能猜到的半好的。
电流我只有一个users
集合。
这是我当前的代码,当用户点击/signup
作为POST
请求时运行。
exports.postSignup = function(req, res, next){
req.assert('email', 'Please sign up with a valid email.').isEmail();
req.assert('password', 'Password must be at least 6 characters long').len(6);
var errors = req.validationErrors();
if (errors) {
req.flash('errors', errors);
req.flash('form', {
email: req.body.email
});
return res.redirect('/signup');
}
// calls next middleware to authenticate with passport
passport.authenticate('signup', {
successRedirect: '/dashboard', // Select redirect for post signup
failureRedirect: '/signup',
failureFlash : true
})(req, res, next);
next();
};
我将此称为中间件,以保持清洁。
编辑**
分片是否会成为更好的性能解决方案?我知道它需要大量的设置和规划,但它可能值得吗?唯一的问题是安全......