在 javascript 中连接到 mongoose 数据库时出错

Posted

技术标签:

【中文标题】在 javascript 中连接到 mongoose 数据库时出错【英文标题】:Error connecting to a mongoose database in javascript 【发布时间】:2020-11-14 09:28:53 【问题描述】:

我正在运行这段代码:

const mongoose = require('mongoose');
const DB_NAME = 'eventdb';
const HOST = '127.0.0.1:27017';
mongoose.createConnection(`mongodb://$HOST/$DB_NAME`,useNewUrlParser:true);
const db = mongoose.connection;
db.on('error', console.log('Didn\'t connect properly!'));

我得到这个输出:

没有正确连接! 事件.js:111 throw new ERR_INVALID_ARG_TYPE('listener', 'Function', listener); ^

TypeError [ERR_INVALID_ARG_TYPE]:“listener”参数必须是函数类型。收到>未定义 在 checkListener (events.js:111:11) 在 _addListener (events.js:348:3) 在 NativeConnection.addListener (events.js:406:10) 在对象。 (/Users/sebastianc/Desktop/codeworks/exercises/assessments/weekly->assessment-6/server/Models/event-model.js:11:4)

谁能解释一下发生了什么?

【问题讨论】:

【参考方案1】:

你必须传递一个回调函数:

db.on('error', () => console.log('Didn\'t connect properly!'));

查看相关帖子:TypeError [ERR_INVALID_ARG_TYPE]

【讨论】:

你是如何调试的?是经验吗?因为堆栈跟踪根本没有引用那行代码 过去有时我自己也偶然发现了这一点。您的代码上也没有太多选项可以相应地应用错误消息【参考方案2】:

我建议像这样与猫鼬联系。

mongoose.connect(`mongodb://$HOST/$DB_NAME`,useNewUrlParser:true, function (err) 
    if (err) 
        console.log('Mongo Error ' + err);
     else 
        console.log('MongoDB Connection Established');
    
);

【讨论】:

以上是关于在 javascript 中连接到 mongoose 数据库时出错的主要内容,如果未能解决你的问题,请参考以下文章

在 NodeJS 中连接到 websocket 时出现协议错误

在 express.js 中连接到 Mongodb-Native-Driver

在spring boot中连接到多个数据库

在 Java 中连接到 websocket

在 Python 中连接到 MS Access

无法在 php 中连接到 mysql 8