node.js - 动态地将 dbName 传递给 mongoose.connect
问题描述
对于 MEAN 应用程序,我需要根据登录用户传递 dbName。事件流程如下。
- 用户登录并使用身份验证特定的 REST-API 进行身份验证。
- Auth-API 将包含 userSpecificDbName 的用户帐户数据返回给 Angular。
- 此后,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 调用:
这将帮助您切换数据库。
推荐阅读
- mysql - 从数据库(MYSQL)中获取行时谷歌脚本超时
- html - 简单的 svg css 进度圈
- r - 如何使用 R 将周数转换为日期格式
- c# - 试图创建一个数据表,但我似乎无法按照我的意愿制作行
- windows - 在 Windows 上,PowerShell 会误解 mosquitto_sub 输出中的非 ASCII 字符
- python - 我有一个列表,我用 compragenson 删除索引还需要在删除索引后删除下一行
- c++ - 多个线程能否在 Monetdbe 中分别打开自己的数据库连接
- python - Python Session 发布 HTTPS 慢
- javascript - d3.js 图表中的错误行
- c# - 如何在 .NET 5.0 中从 IIS 中删除 WebDav?