Mongoose - база данных не отображается в графическом интерфейсе несмотря на установление соединения - PullRequest
0 голосов
/ 27 апреля 2019

Я пишу голое экспресс-приложение с нуля.Я установил соединение БД с помощью Мангуста.То, чего я сейчас пытаюсь достичь, это просто заставить db показываться в графическом интерфейсе монго (я использую и монго-компас, и Robo 3T).Вот мой server.js:

import express from 'express'
import mongoose from 'mongoose'

require('dotenv').config()

const server = express()

server.get('/', (req, res) => {
    res.send("Hello World");
});

const port = process.env.PORT || 5000;

mongoose.connect(process.env.DB_URL, { useNewUrlParser: true });

mongoose.connection.on('open', function(){
    console.log("Mongoose default connection is open to ", process.env.DB_URL)
});


server.listen(port, () => {
    console.log(`server running on port ${port}`)
});

DB_URL выглядит следующим образом: DB_URL=mongodb://localhost:27017/my-test-db

Как и ожидалось, я получаю вывод, говорящий - Mongoose default connection is open to mongodb://localhost:27017/root-factory-db.Однако база данных никогда не отображается в графическом интерфейсе при подключении к localhost:27017.Я понимаю, что у него нет никаких данных.Поэтому я искал дальше, чтобы хотя бы посмотреть, перечисляет ли он БД после подключения.Для этого я попытался настроить метод connection.on следующим образом:

mongoose.connection.on('open', function(){
    console.log("Mongoose default connection is open to ", process.env.DB_URL)
    new Admin(mongoose.connection.db).listDatabases(function(err, result) {
        console.log('listDatabases succeeded');
        // database list stored in result.databases
        var allDatabases = result.databases;
        console.log('allDatabases: ', allDatabases)
    });
});

После этого я могу видеть все мои другие базы данных из других моих локальных приложений, кроме только my-test-db, который я только что создал.Разве он не отображается в графическом интерфейсе или программно, потому что он пуст?В прошлый раз, когда я пробовал оба графических интерфейса (Robo 3T и Mongo Compass), они показывали пустые базы данных просто отлично.Может кто-то, пожалуйста, указать мне правильное направление здесь?

РЕДАКТИРОВАТЬ: Также пытается show dbs из терминала Монго.БД на этом тоже не показывается.

1 Ответ

0 голосов
/ 28 апреля 2019

Если у кого-то еще возникла эта проблема, то, посмотрев ее дальше, я понял, что для того, чтобы БД правильно отображалась в GUI, мне нужно было создать некоторые данные в БД. Я сделал это с помощью запроса POST от одного из контроллеров. Просто создал документ в БД, и ББ (вместе с коллекцией) прекрасно отображалось в графическом интерфейсе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...