如何在 NodeJS 中传递数据库连接

尼科·舒克

我在后端使用带有打字稿的 NodeJS 中的 express 框架。我的索引文件中有一个非常简单的架构:

索引.html

import express          = require("express");
import mongoClient      = require("mongodb");

import apiRoutes from "./routes";
import { MONGO_CONNECTION } from "./config/mongo_config";

const app = express();    

mongoClient.MongoClient.connect(MONGO_CONNECTION, { }, (err: any, mclient: any) => {
    if (err) throw err;

    const mongodb = mclient.db('test');

    app.use('/api', isOnline, apiRoutes);

    app.listen(80, () => console.log('API running on port 80'));
});

快速路由在另一个文件中分隔(在我的版本中,它被分隔在多个文件中,只是为了简单起见),这里只是一个示例:

路线/index.ts

import express          = require("express");
import { Router } from "express";

const router = Router({mergeParams: true});

router.get('/example', (req: express.Request, res: express.Response) => {
    res.json('Hello World');
});

export default router;

我不想使用猫鼬。那么有没有办法将数据库连接传递给另一个文件而无需再次连接?

回复

您可以在 index.js 中导出对象

export const mongodb = {};

然后代替这个:

const mongodb = mclient.db('test');

采用:

mongodb.connection = mclient.db('test');

或类似的东西。

然后代码的其他部分可以导入它,但在使用它之前确保它不是未定义的,因为它可能尚未初始化。

另一种选择是导出一个承诺,该承诺将通过建立连接来解决:

export const mongodb = new Promise((resolve, reject) => {
  // establish your connection here ...

  resolve(mclient.db('test'));

  // ...
);

然后在您的导入代码中,您还将与 await 一起使用它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Redis(NodeJS)中查找数据库数量

在nodejs中连接后如何获取mongodb数据库的基本名称?

如何通过NodeJS连接远程数据库

nodejs中的数据库连接安全

如何在nodeJS中显示来自firebase数据库的数据

如何在多个异步调用中向NodeJS中的数据库发送响应?

如何在 nodejs 3.0 mongo-client 中获取其他数据库实例?

如何在 NodeJS (expressJS) 中暂停 MySQL 数据库事务?

nodejs mongoose - 如何在登录前检查数据库中的项目

如何在数字海洋上设置数据库并将其连接到NodeJS应用程序

如何在使用 CURL 传递的 NodeJS 中检索 POST 数据?

NodeJS:如何使用Mac上的Windows身份验证/ trustedConnection连接到MSQL数据库

如何连接nodejs sequelize aws rds mysql 数据库和ec2 实例

如何在ddev中连接到数据库?

如何在openshift中连接到数据库?

如何在JPA中连接多个数据库?

如何在docker中连接postgres数据库

如何在Julia中连接到MySQL数据库

如何在Django中创建新的数据库连接

如何在Django中检查数据库与mysql的连接

如何在 Typed Racket 中连接数据库?

如何在nestjs中动态连接到数据库?

如何在Laravel 5中列出数据库连接?

如何在SQL Server中连接Azure数据库

如何在 ubuntu 中连接到 postgres 数据库

如何在AWS Lambda中抽象数据库连接?

如何在Visual Studio中连接Oracle数据库

如何在PHP中连接Oracle数据库

如何在 django 1.10.6 中连接 MySQL 数据库