Подключить базу в нескольких местах

Файл Db.js:

const MongoClient = require('mongodb').MongoClient;

const state = {
  db: null
};

exports.connect = (url, done) =>{
  if(state.db) {
    return done();
  }
  MongoClient.connect(url, {},  (err, db) => {
    if(err) {
      return done(err);
    }
    state.db = db;
    done();
  })
};

exports.get = () => {
  return state.db;
};

Файл Server.js:

const db = require('./db');

db.connect('mongodb://localhost:27017/Motoshield', (error) => {
 if(error){
   return console.log(error)
 
 app.listen(9000,function(){
   console.log('Api app started');
 });
});


app.get('/api/new-products',function(req, res){
  db.get().collection("products").find({},{
    projection: {
      categories:0,
      characteristics: 0,
      disadvantage: 0,
      img2: 0,
      img3: 0,
      img4: 0,
      img5: 0,
      img6: 0,
      img7: 0,
      img8: 0
    }
  }).sort({_id:-1}).limit(6).toArray( (error,docs) => {
    if(error) {
      console.log(error);
      return res.sendStatus(500);
    }
    res.send(docs);
  });
});

Пытаюсь реализовать подключение базы данных в нескольких местах, не перезаписывая ее, чтоб использовать в моделях и тд.В ответ получаю ошибку:

TypeError: db.get(...).collection is not a function

Только учусь, возможно есть более хорошая реализация, также возможно есть пример как лучше законнектиться к базе данных


Ответы (1 шт):

Автор решения: Igor

Допишите state.db = db.db('Название базы');

→ Ссылка