Я писал код для базы данных через mongoose, но я получаю эту ошибку на терминале mongoose.connection.on ошибка - PullRequest
0 голосов
/ 04 сентября 2018

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

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

Ответы [ 3 ]

0 голосов
/ 04 сентября 2018

Вы должны определенно использовать некоторые переменные / идентификаторы для хранения соединения, как описано в документации 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 };
0 голосов
/ 04 сентября 2018

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

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);
});
0 голосов
/ 04 сентября 2018

Вы получили ошибку, потому что 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 ..});
     });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...