Я писал код для базы данных через 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 };