Mongoose подключается только к одному БД вместо обоих - PullRequest
0 голосов
/ 19 апреля 2019

Я работаю над небольшим проектом в JS и хочу получить доступ к 2 различным базам данных mongoose. Похоже, что только одна из баз данных доступна ...

Вот мой код в app.js:

mongoose.connect('mongodb://someOtherDb', { useNewUrlParser: true, useCreateIndex: true });
const connection = mongoose.connection;
connection.on('open',()=>{
    console.log(" database connected")
})
connection.on('error',()=>{
    console.log("error in connecting to database")
})

mongoose.connect('mongodb://localhost:27017/users', { useNewUrlParser: true, useCreateIndex: true });
const userDb = mongoose.connection;

// on mongo error
userDb.on('error', console.error.bind(console, 'connection error:'));

// sessions for logins
app.use(session({
  secret: 'top secret!',
  saveUninitialized: false,
  resave: true,
  store: new MongoStore({
    mongooseConnection: userDb
  })
}));

Является ли проблема с частью mongoose.connect и как я устанавливаю userDb и соединение равными mongoose.connection?

Спасибо!

1 Ответ

0 голосов
/ 19 апреля 2019

Mongoose обрабатывает соединения через пул соединений http://mongoosejs.com/docs/connections.html

Вы можете использовать опцию server: {poolSize: 5} для увеличения / уменьшения пула (количество параллельных соединений)

Если выНужны соединения с разными базами данных, смотрите здесь Mongoose и несколько баз данных в одном проекте node.js

Пример нескольких соединений:

var mongoose = require('mongoose')
var conn1 = mongoose.createConnection('mongodb://someOtherDb');
var conn2 = mongoose.createConnection('mongodb://localhost:27017/users');
var Schema = new mongoose.Schema({})
var model1 = conn1.model('collection1', Schema);
var model2 = conn2.model('collection2', Schema);
model1.find({}, function() {
   console.log("datas found 1");
});
model2.find({}, function() {
   console.log("datas found 2");
});
...