Я пытаюсь построить классическую структуру router-controller-app-dbconnection, используя nodejs и mongodb. С чем я борюсь, так это:
Ниже приведены классы:
class Database {
constructor(dbase) {
this.dbase = dbase;
}
makeConnect(uri, options) {
new MongoClient.connect(uri, options, (err, db) => {
if (err) {
return console.log(err)
}
this.db = db.db(this.dbase);
});
return this.db;
}
}
export default Database;
class CompaniesController {
constructor(dbConnection) {
this.db = dbConnection;
}
//get all companies
getAllCompanies(req, res) {
return res.status(200).send({
success: 'true',
message: 'companies retrieved successfully',
companies: this.db.collection('companies').find().toArray(err, results => {
if(err) {
console.log(err);
}
res.send(results)
})
});
}
}
export default CompaniesController;
И ниже маршрутизатор:
const router = express.Router();
const mongoUtils = new MongoUtils();
mongoUtils.setConfigs('root', 'root');
const configs = mongoUtils.getConfigs();
const myController = new CompaniesController(new Database('sample_training').makeConnect(configs.uri, configs.options));
router.get('/api/v1/companies', myController.getAllCompanies);
export default router;
Я получаю Cannot read property 'db' of undefined
Чего мне не хватает?