【发布时间】:2019-09-16 10:56:00
【问题描述】:
我正在从头开始编写一个简单的快递应用程序。我已经使用猫鼬建立了一个数据库连接。我现在想要实现的只是让数据库显示在 mongo GUI 上(我同时使用 mongo compass 和 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 时,数据库永远不会出现在 GUI 上。我知道它没有任何数据。所以我进一步搜索至少看看它是否在连接后列出了数据库。为此,我尝试如下调整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。它是不是因为它是空的而没有显示在 GUI/编程上?上次我尝试了两个 GUI(Robo 3T 和 Mongo Compass),它们显示空数据库就好了。有人可以在这里指出正确的方向吗?
编辑:也在 mongo 终端尝试show dbs。 db 也没有出现在上面。
【问题讨论】:
标签: database mongodb express mongoose