連投すみません。お引越し中です…。
結論から言うと、
Expressのミドルウェアには通常のコールバック関数を与えること!
らしいです…
これだけでは理解できなかったのでまとめます。
ミドルウェアとは
コンピューターは「ハードウェア」「OS」「ミドルウェア」「アプリケーション」の4要素で構成されています。
ミドルウェアは「OS」と「アプリケーション」の間にあるような、「OS」でも「ミドルウェア」でもないもの。
機械とアプリの橋渡しをするようなものは全て「ミドルウェア」のようです…。
例えば、windows10が「OS」ブラウザが「アプリケーション」、
「Webサーバ」(ブラウザからのリクエストに応じてWebページを送信する)が「ミドルウェア」です。
わかりずらい…!
expressとNode.jsでいうと、router.all()関数は、expressからNodeに渡している関数だから、ミドルウェアらしいです。
つまり、router.all()やrouter.post()のコールバック関数を標準にすればいいのですね!
コールバック関数とは
関数の引数として呼び出す関数です。
(例) function( 10, timer() )
これは、function関数の引数として呼び出されているtimer()がコールバック関数。
Express+Node.jsの場合、router('/', function(){})のfunction()関数を、通常の関数にしなければならない。
つまり、asyncはコールバック関数にはつけてはいけません!(つけてた)
まとめ
だめ↓
router.all('/', async function(){
//中身
})
いい↓
router.all('/', function(){
main(){
//中身
}
main()
})