さまざまなdbコールを処理するノードモジュールを作成しようとしています。 私はできる限り非同期/待機を使用したいと思っていますが、いくつか問題があります。ノードモジュールから非同期関数をエクスポートする方法
私は約束を少し使いましたが、それらの関数をうまくエクスポートしています。 例:
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);
});
});
});
}
そして、私は次のようにエクスポート:どのように私は非同期/のawaitそのnode7で利用可能なを使用するために、非同期機能で、これを行う必要があり、
module.exports = {
GetUsernames: GetUsernames,
GetScopes: GetScopes,
UpdateToken: UpdateToken,
SetOwner: SetOwner
};
しかし?
私はまだ約束を返していますか?私はそれをやろうとしましたが、私のコードで呼び出すと、うまくいきません。
const db = require("dataprovider");
...
var result = await db.GetUsernames();
それは私を与える:
SyntaxError: Unexpected identifier
デシベル名に(私は約束の機能を使用する場合)(その後で、正常に動作します。)
多分私のGoogleのスキルはひどいです、この問題で私が使うことのできるものはGoogleで管理していません。
私のモジュールで、他の場所で待つことができる非同期機能をどのように行うのですか?
これはどのようにしてmodule.exportsの問題を解決するのかよくわかりません。あなたは精緻化できますか? – deejbee
申し訳ありません、それは明らかではありませんでした。 module.exportsは= { getUserNames:getUserNames } それとも、あなたのモジュールがエクスポートに機能権限を定義することができます。 module.exportsは= { getUserNames:非同期をあなた上記その後、追加することができますとあなたは、2つのことを行うことができますfunction(){ 戻り値await db.getUserNames(); } } –