DevGang
Авторизоваться

Как подключиться к базе данных MongoDB в Sveltekit

Хотя база данных, подобная Mongo, не является идеальным выбором для многих разработчиков, она привлекла немало честных пользователей и процветающее сообщество. Если вы здесь, то, скорее всего, являетесь частью этого сообщества.

MongoDB - это документно-ориентированная база данных, что означает, что она обеспечивает гибкое и динамичное проектирование схем. Такая гибкость особенно полезна в сценариях, где структура данных эволюционирует с течением времени.

В этой статье мы рассмотрим неочевидный трюк, который многие пользователи Sveltekit использовали для безопасного подключения к своей базе данных Mongo.

Как?

Для этого мы будем использовать хук Sveltekit, поскольку он позволяет нам создать соединение только один раз, перед запуском сервера.

Звучит запутанно? вот пример.

1. Создайте наш клиент MongoDB

mongo.ts
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();
}
Если вы не знакомы с управлением $env в Sveltekit — переменные среды в process.env также доступны через $env/static/private.

2. Выполните соединение крючком Sveltekit

hooks.server.ts
import { connect } from '$db/mongo';

// Connect to MongoDB before starting the server
connect()
	.then((): void => {
		console.log('MongoDB started');
	})
	.catch((e) => {
		console.log('MongoDB failed to start');
		console.log(e);
	});

Это позволит подключиться к базе данных только один раз, и то перед запуском приложения. Большинству из нас знакомо использование перехватчика с функцией handle, который может перехватывать запросы и используется для защиты маршрутов.

Но это происходит только с вещами в функциях handle, все остальные вещи, вызываемые вне функции handle, будут выполнены только один раз перед запуском приложения.

Вот и все, как подключить MongoDB в Sveltekit. Удачи в игре с NoSQL 

Источник:

#MongoDB
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу