2
我正在尝试编写节点模块来处理我的各种数据库调用。 我想尽可能使用异步/等待,但我遇到了一些问题。如何从节点模块导出异步功能
我一直在使用承诺一点,并导出这些功能很好。 例子:
function GetUsernames() {
return new Promise(function (resolve, reject) {
sql.connect(config).then(function() {
new sql.Request()
.query("SELECT [UserName] FROM [Users] ORDER BY [LastLogin] ASC").then(function (recordset) {
resolve(recordset);
}).catch(function (err) {
reject(err);
});
});
});
}
然后,我在下面的输出:
module.exports = {
GetUsernames: GetUsernames,
GetScopes: GetScopes,
UpdateToken: UpdateToken,
SetOwner: SetOwner
};
不过,我应该怎么做,有一个异步功能,使用异步/静候可在node7?
我还只是答应了吗?我试过这样做,但是当我在代码中调用它时,它不起作用。
const db = require("dataprovider");
...
var result = await db.GetUsernames();
它给我:
SyntaxError: Unexpected identifier
的数据库名称
也许我的谷歌技能是可怕的(()工作正常,如果我只是用承诺的功能,与当时)但在这个问题上,我还没有设法谷歌任何我可以使用的。
在我的模块中,我怎样才能使异步函数在其他地方等待?
我不知道这是如何解决module.exports的问题。你能详细说明吗? – deejbee
对不起,不清楚。你可以做两件事情,与上面,你可以再添加: Module.exports = { getUserNames:getUserNames } 或者你可以定义函数就在你的模块出口: module.exports = { getUserNames:异步函数(){ return await db.getUserNames(); } } –