Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在另一个函数中创建Mongoose连接时未调用查询回调_Javascript_Node.js_Mongodb_Mongoose_Mongodb Query - Fatal编程技术网

Javascript 在另一个函数中创建Mongoose连接时未调用查询回调

Javascript 在另一个函数中创建Mongoose连接时未调用查询回调,javascript,node.js,mongodb,mongoose,mongodb-query,Javascript,Node.js,Mongodb,Mongoose,Mongodb Query,当我在创建并打开mongoose连接后立即进行查询时,如下图所示,将点击查询回调并加载文档 var-db, 猫鼬=需要(“猫鼬”); ... MyClass.prototype.query=函数(模型、条件、回调){ 变量选项={ 服务器:{ 自动重新连接:正确, 插座选项:{ 保持活力:1 } } }; 猫鼬mongodb://localhost/mydatabase",选择),; db=猫鼬连接; db.on('error',console.error.bind(console,'error

当我在创建并打开mongoose连接后立即进行查询时,如下图所示,将点击查询回调并加载文档

var-db,
猫鼬=需要(“猫鼬”);
...
MyClass.prototype.query=函数(模型、条件、回调){
变量选项={
服务器:{
自动重新连接:正确,
插座选项:{
保持活力:1
}
}
};
猫鼬mongodb://localhost/mydatabase",选择),;
db=猫鼬连接;
db.on('error',console.error.bind(console,'error:');
db.once('open',function(){
model.find(标准).exec(函数(错误,文档){
回调(err,{},docs);
});
});
};
但是,当我在
initDB
函数中创建连接并稍后进行如下所示的查询时,不会调用回调<在启动
express
服务器之前,正在调用code>initDB

var-db,
猫鼬=需要(“猫鼬”);
...
函数initDB(){
变量选项={
服务器:{
自动重新连接:正确,
插座选项:{
保持活力:1
}
}
};
猫鼬mongodb://localhost/mydatabase",选择),;
db=猫鼬连接;
db.on('error',console.error.bind(console,'error:');
}
...
MyClass.prototype.query=函数(模型、条件、回调){
db.once('open',function(){
model.find(标准).exec(函数(错误,文档){
回调(err,{},docs);
});
});
};

我错过了什么?任何帮助都将不胜感激

这很可能是因为传递给
db.once('open',…
的回调仅在与数据库建立连接时被调用一次。请尝试将对
db.once()
的调用移动到
initDB()
函数中,如下所示:

var-db,
猫鼬=需要(“猫鼬”);
...
函数initDB(){
变量选项={
服务器:{
自动重新连接:正确,
插座选项:{
保持活力:1
}
}
};
猫鼬mongodb://localhost/mydatabase",选择),;
db=猫鼬连接;
db.once('open',function(){
log('连接到数据库!');
});
db.on('error',console.error.bind(console,'error:');
}
...
MyClass.prototype.query=函数(模型、条件、回调){
model.find(标准).exec(函数(错误,文档){
回调(err,{},docs);
});
};