如何检查猫鼬是否连接



在我正在处理的一个项目中,我连接到这样的数据库,它输出console.log部分

const express = require('express');
const app = express();
const socketio = require('socket.io');
const mongoose = require('mongoose');
const expressServer = app.listen(3001);
const io = socketio(expressServer);
const Game = require('./Models/Game')
mongoose.connect('mongodb://localhost:27017/test', 
{useNewUrlParser: true, useUnifiedTopology: true},
()=>{console.log('successfully connected to database')});

后来,我用mongoose创建了一个模式模型,创建了这个模型的一个实例,当我试图将它保存在第13行时,代码在到达这一点时停止执行。

1    io.on('connect', (socket)=>{
2        socket.on('create-game',async (nickName)=>{
3            try{
4                const quotableData = await QuotableAPI();
5                let game = new Game();
6                game.words = quotableData;
7                let player = {
8                    socketID : socket.id,
9                    isPartyLeader : true,
10                    nickName
11                }
12                game.players.push(player);
13                game = await game.save();
14                .......

所以我想知道是否是我没有连接到数据库。作为参考,我尝试了

console.log(mongoose.connection.readyState) 

它输出了0,我在其他帖子中看到这意味着你没有连接。如果是这样的话,我们将如何解决这个问题。

您可以通过打印连接数据库中的所有集合来验证这一点。

const express = require('express');
const app = express();
const socketio = require('socket.io');
const mongoose = require('mongoose');
const expressServer = app.listen(3001);
const io = socketio(expressServer);
mongoose.connect('mongodb://localhost:27017/test');
mongoose.connection.on('open', function (ref) {
console.log('Connected to mongo server.');
mongoose.connection.db.listCollections().toArray(function (err, names) {
console.log(names);
});
})

您可以使用mongoose.connection.connect进行检查。

const mongoClient = require('./config/default')
const mongoose = require('mongoose')
// MongoDB
mongoose.connect(
`mongodb+srv://${mongoClient.username}:${mongoClient.password}@${mongoClient.url}/${mongoClient.database}?retryWrites=true&w=majority`
)
// Test connection
mongoose.connection.once('open', function () {
console.log('MongoDB database connection established successfully')
})

您的本地mongodb服务器正在运行吗?

在终端中键入mongod以启动它。

您也可以使用Mongo Compass进行检查。

这是一篇关于它的好文章。

最新更新