LoginSignup
0
0

More than 3 years have passed since last update.

(Express)HTMLからの処理をNode.jsで同期/非同期処理した時に教わった注意点

Posted at

連投すみません。お引越し中です…。

結論から言うと、
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はコールバック関数にはつけてはいけません!(つけてた)

まとめ

だめ↓

index.js
router.all('/', async function(){
 //中身
})

いい↓

index.js
router.all('/', function(){
 main(){
  //中身
 }

 main()
})
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0