如何在 Sveltekit 中连接到 MongoDB 数据库

2024-02-01 23:13:03 浏览数 (1)

虽然像 Mongo 这样的数据库并不是很多开发人员的首选,但它已经赢得了大量诚实的用户和蓬勃发展的社区。如果您在这里,您很可能是这个社区的一部分。

MongoDB 是一个面向文档的数据库,这意味着它允许灵活、动态的模式设计。这种灵活性在数据结构随时间演变的场景中特别有用。

在本文中,我们将了解许多 Sveltekit 用户用来安全连接到 Mongo 数据库的一个不明显的技巧。

如何在 Sveltekit 中连接到 MongoDB 数据库

为此,我们将利用 Sveltekit 挂钩,因为它允许我们在启动服务器之前仅创建一次连接。

听起来很混乱?这是一个例子。

1. 创建我们的 MongoDB 客户端

代码语言:js复制
import { MONGO_URL } from '$env/static/private';
import { MongoClient } from 'mongodb';

const client = new MongoClient(MONGO_URL);

// connect to the database
export async function connect(): Promise<void> {
    await client.connect();
}

如果您不熟悉 Sveltekit$env管理 —process.env也可以通过$env/static/private.

  1. 在Sveltekit hook 中执行连接。
代码语言:js复制
import { connect } from $db/mongo
connect()
    .then((): void => {
        console.log(`$MongoDB started`);
    })
    .catch((e) => {
        console.log(`$MongoDB failed to start`);
        console.log(e);
    });

这将允许数据库连接仅发生一次,并且也是在启动应用程序之前发生。我们大多数人都熟悉使用带有句柄函数的钩子,它可以拦截请求并用于保护路由。

但这只会发生在句柄函数中,在句柄函数之外调用的所有其他内容只会在应用程序启动之前执行一次。 我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

0 人点赞