Chcem používať mongodb s plachtami, ale bez ORM. Takže nižšie je moja služba na pripojenie mongodbu.
servis:
//DbService.js
const MongoClient = require("mongodb").MongoClient;
module.exports = {
db:function(req, res){
var connect=MongoClient.connect("mongodb:***********").then(function (err, database) {
if(err) console.log(err);
else{
database=database.db("*****");
return connect;
}
});
}
}
Po pripojení som ho volal v radiči, ale dostať TypeError: Nedá sa čítať vlastnosť "potom" z nedefinovaného.
regulátor:
//HomeControlelr.js
module.exports = {
index:function(req, res){
DbService.db().then(function(err,db) {
console.log(db);
})
}
};
odpovede:
0 pre odpoveď č. 1Ako môžete vidieť docs MongoClient.connect()
nevráti Promise objekt. Namiesto toho použite funkciu spätného volania
module.exports = {
db:function(){
var connect = MongoClient.connect("mongodb:***********", function (err, database) {
//...
}
});
}
}
btw. Tvoja voľba DbService.db
funkcia v ovládači tiež zlyhá, pretože vaša servisná funkcia tiež nevracia prísľub
Skôr ako budete pokračovať, prečítajte si niečo o sľuboch a funkciách spätného volania