NEDB NodeJS找到文档并等待结果



我在NodeJS应用程序中使用NEDB作为一些本地存储。因此,我确实有一个handlerscript";nedbhandler.js";这是我在main.js.中确实需要的

var NEDB = require('./nedbhandler.js');
async function test(){
var value = await NEDB.getValue_byID(1);
console.log(value)
}
test()

而在nedbhandler.js中,我的查询是这样处理的:

async function getValue_byID(id){
db.config.findOne({ _id: id }, function (err, doc) {
callback(doc);
});
function callback(doc) {
console.log(doc)
return doc;
}
}
exports.getValue_byID = getValue_byID;

虽然nedbhandler.js中的控制台记录了预期值,但

main.js在main.js中加载下一个函数之前,加载所有配置查询的最佳做法是什么?

您希望getValue_byID函数返回promise

function getValue_byID(id){
return new Promise((resolve, reject) => {
db.config.findOne({ _id: id }, (err, doc) => {
err ? reject(err) : resolve(doc);
});
});
}

请注意我是如何将function关键字更改为更现代的=>语法的。使用constlet代替var也被认为是更好的实践

有一个用于nedb的包装器模块,称为nedbpromise。它或多或少地完成了我在这里所做的工作,所以您可以使用async/await而不是回调。

最新更新