Обычно задают вопрос, когда что-то работает, но это работает хорошо. Я использую соединение с Mongodb в приложении Nuxt.
Единственное место, где объявлен адрес БД, находится в индексе . js
const express = require('express');
const mongoose = require('mongoose');
const apiRouter = require('./apiRouter');
const app = express();
app.use(express.json());
mongoose.connect('mongodb://localhost/sun-v2', {useNewUrlParser: true})
app.use(apiRouter);
module.exports = {
path: '/server',
handler: app
}
Как видите, mon goose Объект не экспортируется. В моем apiRouter. js Модели требуются и отлично работают:
const express = require('express');
const PlayerModel = require('./models/player');
const app = express();
app.get('/players', async (req, res) => {
const players = await PlayerModel.find({});
try {
res.send(players);
} catch (error) {
res.status(500).send(error);
}
});
Что я не понимаю, так это то, как Model.find()
знает, где искать БД, если ни путь, ни соединение не экспортируются.
Что если у меня более одного адреса БД, как я могу выбрать соединение, которое хочу использовать? У меня есть более одной открытой базы данных mon go, откуда она знает, что должна использовать ту, к которой я установила соединение в индексе?