TypeError:无法读取节点js和猫鼬中未定义的属性“ on”

时间:2018-06-23 13:06:26

标签: node.js mongodb mongoose socket.io

运行应用程序时出现错误。

错误:

 MongoDB.on('error', function(err) { console.log(err.message); });
 TypeError: Cannot read property 'on' of undefined
 ...

我试图将代码的这一部分注释掉,以查看是否存在类似的错误并发现了另一个相同的错误。 (这次是“一次”这个词)

代码:

var mongoURI = "mongodb://localhost/chatapp";
var MongoDB = mongoose.connect(mongoURI).connection;
MongoDB.on('error', function(err) { console.log(err.message); });
MongoDB.once('open', function() {
    console.log("mongodb connection open");
});

如果有人可以帮助我解决这个问题,那将是非常不错的:( 我搜索了互联网,发现没有任何帮助。

4 个答案:

答案 0 :(得分:1)

var mongoose = require('mongoose');
var mongoURI = "mongodb://localhost/chatapp";
var MongoDB = mongoose.connect(mongoURI).connection;
MongoDB.on('error', function(err) { console.log(err.message); });
MongoDB.once('open', function() {
    console.log("mongodb connection open");
});

在终端上运行应用程序之前,请输入npm install mongoose --save

答案 1 :(得分:0)

尝试一下:

   const mongoose = require('mongoose');

    mongoose.connect(mongoURI);
    mongoose.connection.once('open',()=>{
        console.log('Connected to db');
    });

答案 2 :(得分:0)

该信息非常清楚。 MongoDb是未定义的。

说说您的MongoDb变量。应该是mongoDb小写。这是一个实例。

无论如何,问题出在mongoose.connect(mongoURI).connection中。从那里调试。

答案 3 :(得分:0)

const config = require('../config');
const Mongoose = require('mongoose');

Mongoose.connect(config.dbURI);
Mongoose.connection.once('open',()=>{
    console.log('Connected to db');
});

它对我有帮助。