Array
String
または Object
または Function
Nuxt は内部で connect のインスタンスを作ります。
それはミドルウェアをスタックに登録したり、 外部サーバーを必要とせず に API などのルートを増やす事を可能にしてくれます。
connect 自体はミドルウェアで、登録されたミドルウェアは nuxt start
と express-template のようなプログラム的な使用法を持つミドルウェアとして使用されます。 Nuxt モジュール もまた this.addServerMiddleware() を使用して serverMiddleware
を提供できます。
それらに加え、デフォルトで true
にする prefix
オプションを導入しました。サーバーミドルウェアに router base を追加します。
例:
/api
/admin
prefix: true
(default): /admin/api
prefix: false
: /api
クライアントサイドや SSR の Vue で各ルートの前に呼び出されている ルーティングのミドルウェア と混同しないでください。
serverMiddleware
は vue-server-renderer
の 前に サーバー側で実行され、API リクエストの処理やアセットの処理などのサーバー固有のタスクとして使用できます。
もしミドルウェアが文字列の場合、 Nuxt.js は自動的にそれを解決し、そのミドルウェアを要求します。
例 (nuxt.config.js
):
import serveStatic from 'serve-static'
export default {
serverMiddleware: [
// redirect-ssl npm パッケージを登録します
'redirect-ssl',
// /api/* を処理するために、プロジェクトの api ディレクトリからファイルを登録します
{ path: '/api', handler: '~/api/index.js' },
// カスタムインスタンスを作成することもできます。
{ path: '/static2', handler: serveStatic(__dirname + '/static2') }
]
}
注意点! もしミドルウェアをすべてのルートに登録したくない場合は、特定のパスでオブジェクトフォームを使用する必要があります。 そうしないと nuxt の デフォルトハンドラは機能しません。
カスタムミドルウェアの作成も可能です。 詳細については、 Connect Docs を参照してください。
ミドルウェア (api/logger.js
):
export default function (req, res, next) {
// req は Node.js の HTTPリクエストオブジェクトです
console.log(req.path)
// res は Node.js の HTTPレスポンスオブジェクトです
// next は 次のミドルウェアを呼び出すための関数です。
// あなたのミドルウェアが最後でない場合、関数の最後で next を呼び出すのを忘れないでください!
next()
}
Nuxt Config (nuxt.config.js
):
serverMiddleware: [
'~/api/logger'
]
間違いを見つけた、またはドキュメントに貢献したいですか? GitHub でこのページを編集する