Я писал код для базы данных через mongoose, но я получаю эту ошибку на терминале mongoose.connection.on ошибка

Я получаю эту ошибку каждый раз, когда я запускаю приложение..... ошибка на скриншотах. Пожалуйста, дайте мне знать, как это исправить. Заранее спасибо. введите описание изображения здесь

введите описание изображения здесь

3 ответа

Вы получили ошибку, потому что Mongoose.connection еще не существует, когда вы пытаетесь получить к нему доступ. Вам нужно использовать обратный вызов как

const Mongoose=require("mongoose").connect(config.dbURL,(error)=>{
     if (!error) {
         Moongose.connection.on("error",(error)=>{...your code here ..});
     }
})

или используйте Promise

const Mongoose=require("mongoose").connect(config.dbURL)
    .then(()=>{
         Moongose.connection.on("error",(error)=>{...your code here ..});
     });

Попробуй это:-

const MongoClient = require('mongodb').MongoClient;
 // Connection URL
 const url = 'mongodb://localhost:27017';  
// Database Name
const dbName = 'test';
// Use connect method to connect to the server
MongoClient.connect(url, function(err, client) {
assert.equal(null, err);
console.log("Connected successfully to server");
const db = client.db(dbName);
});

Вам определенно следует использовать некоторые переменные / идентификаторы для хранения соединения, как описано в документации по Mongoose здесь.

console.log ваш config и проверьте, правильно ли они выбираются.
Сообщество также помогает лучше, если вы предоставляете больше деталей и используете фрагменты кода вместо скриншотов.

Затем проверьте, начинается ли URL базы данных с mongodb://,

И затем, у вас есть орфографическая ошибка на line 19 где вы определяете схему charUser но пытаются моделировать chatUser на line 27,

Попробуйте положить Mongoose.promise = Promise; только после того, как вы импортируете мангуст.

Кроме того, я бы предложил вам использовать следующий стиль:
1. Создать db.js который будет экспортировать соединение с базой данных для вас.

const mongoose = require('mongoose');

mongoose.Promise = Promise;

const options = {
  poolSize: 25,
  socketTimeoutMS: 0,
  keepAlive: true,
  reconnectTries: 30,
  user: 'MONGODB_USER',
  pass: 'MONGODB_PASS',
  auth: {
    authdb: 'MONGODB_AUTH_DB',
  },
};

const dbname = 'db_name_goes_here';
const host = 'db_server_URI_goes_here';
const port = port_number_goes_here || 27017;
const uri = `mongodb://${host}:${port}/${dbname}`; // a template string

const db = mongoose.createConnection(uri, options);

module.exports = db;


2. Используйте соединение в файле модели следующим образом:

const { Schema } = require('mongoose');
const db = require('./db.js');
const chatUser = new Schema({
    profileID: String,
    fullName: String,
    profilePic: String
});
const userModel = db.model('chatUser', chatUser);
module.exports = { userModel };
Другие вопросы по тегам