希望を安らかなAPIを構築するためにevent-driven
アーキテクチャを使用することができます。基本的に、場合によっては、「イベント駆動型アーキテクチャ」という言葉は異なって説明することができます。あるケースでは、すべての非同期関数を説明する基本的なコアNodeJSフローです。別のケースでは、質問の根はイベント、イベントエミッタなどに関連する可能性があります。
しかし、すべての非同期アクションを待つという主な考え方です。スレッドのブロッキングを避けるために、それはさらに進んで、重い要求を待たずに残りのコードを処理します。そこで、この非同期機能をどのように扱うべきかを知る必要があります。
基本的な非同期流れ
私は理解して、あなたはNodeJSで非同期操作に関連する質問を持っています。これが技術の根幹です。重い操作はすべて非同期で処理されます。それはV8とイベントループに関するものです。
したがって、非同期操作で作業するには、コールバック関数、約定、または非同期待機構文を使用できます。
コールバック関数
function asyncFunction(params, callback) {
//do async stuff
callback(err, result);
}
function callbackFunction(err, result) {
}
asyncFunction(params, callbackFunction);
約束
promiseFunction()
.then(anotherPromiseFunction)
.then((result) => {
//handle result
})
.catch((err) => {
//handle error
});
非同期待つ
function anotherAsyncFunction() {
//do async stuff
}
const asycnFunction = async (params) => {
const result = await anotherAsyncFunction();
return result;
};
イベント/ Eベントエミッタ
const fs = require('fs');
const filePath = './path/to/your/file';
const stream = fs.createReadStream(filePath);
stream.on('data', (data) => {
//do something
});
stream.on('end',() => {
//do something;
});
stream.on('error', (err) => {
//do something;
});
これらの方法は、状況やニーズに応じて使用できます。私は非同期フロー(約束事と非同期待遇)で働く現代的な方法があるので、コールバック関数をスキップすることをお勧めします。ところで、 'async-await'も約束を返します。
単純なExpress JS Server(かなり古い構文)の例ですが、依然として有効です。質問をチェックして、書くこと自由に感じてください:ここでは
https://github.com/roman-sachenko/express-entity-based
は、私はあなたをお勧めします記事のリストです:
https://blog.risingstack.com/node-js-at-scale-understanding-node-js-event-loop/ https://blog.risingstack.com/mastering-async-await-in-nodejs/