(Express)HTMLからの処理をNode.jsで同期/非同期処理した時に教わった注意点
連投すみません。お引越し中です…。
結論から言うと、
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()
})
Author And Source
この問題について((Express)HTMLからの処理をNode.jsで同期/非同期処理した時に教わった注意点), 我々は、より多くの情報をここで見つけました https://qiita.com/aomo_study/items/be1d7ca29edd265e05ca著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .