かなりの小ネタです。
aws-serverless-express を使うと Nuxt が Lambda で動くというのは既出記事でたくさんあるんですけど、そのほとんどが公式の通りに以下の様な実装になってます。
const awsServerlessExpressMiddleware = require('aws-serverless-express/middleware')
app.use(awsServerlessExpressMiddleware.eventContext())
aws-serverless-express/middleware
のソースコードを読んでみたら、普通にNuxtの serverMiddleware
で動きそうだったため、やってみたら動きましたとさ。
middleware/aws-serverless.js
const middleware = require('aws-serverless-express/middleware')
module.exports = middleware.eventContext() // わずか 2 行
nuxt.config.js
module.exports = {
serverMiddleware: ['~/middleware/aws-serverless']
}
ちなみに、ローカルで動かしているときも「API Gateway からのリクエストじゃないよ」というログを吐くだけで悪さをしないので、「AWS 環境だったら読み込む」みたいな制御も不要です。
ちゃんちゃん。