动态地将dbName传递给mongoose.connect



对于MEAN应用程序,我需要根据登录用户传递dbName。事件流程如下。

  1. 用户登录并使用特定于身份验证的REST-API进行身份验证
  2. Auth-API向Angular返回包括userSpecificDbName的用户帐户数据
  3. 此后,Angular对应用程序的主REST-API进行所有调用。在所有对API的调用中,传递帐户数据,API shd在app.js的以下语句中使用帐户数据中的dbName
mongoose.connect(uri, { dbName: <userSpecificDbName> })
.then( () => {
console.log('Connection to the Atlas Cluster is successful!')
})
.catch( (err) => console.error(err));

这可能吗?我该如何在app.js中传递数据呢?

当然可以做到这一点,但请记住,您需要根据每个请求打开和关闭连接才能做到这一步,这在Node.js中不是常规模式通常情况下,您会连接到数据库一次,然后激发查询。但在您的情况下,每次发送响应后都会断开连接,然后重新连接数据库。

或者,您也可以按照以下答案中的建议进行useDb调用:

用猫鼬交换数据库

这将帮助您切换数据库。

最新更新