使用mongodb和mongoose为每个用户分隔数据库

时间:2017-11-02 01:20:52

标签: node.js mongodb express mongoose passport.js

我正在使用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();
};

我将此称为中间件,以保持清洁。

编辑**

分片是否会成为更好的性能解决方案?我知道它需要大量的设置和规划,但它可能值得吗?唯一的问题是安全......

0 个答案:

没有答案