Я пытаюсь выполнить рендеринг Nuxt с помощью функции лямбда AWS. Я хочу использовать метод programati c nuxt.render
и подготовить промежуточное изделие express следующим образом:
// nuxt.js
const { loadNuxt } = require('nuxt')
const app = require('express')()
const nuxt = async () => {
const nuxt = await loadNuxt('start')
app.use(nuxt.render)
return app
}
module.exports = nuxt
})
К сожалению, необходимая функция loadNuxt
является asyn c. Я пытаюсь использовать serverless-http для монтирования приложения express
// index.js
const sls = require('serverless-http')
const binaryMimeTypes = require('./binaryMimeTypes.js')
const nuxt = require('./nuxt')
module.exports.nuxt = sls(nuxt, {
binary: binaryMimeTypes
})
Попытка описанного выше приводит к загрузке страницы, которая никогда не завершает загрузку. Это связано с тем, что loadNuxt является asyn c. Как подготовить приложение asyn c express для плагина http-serverless?
Если я жду loadNuxt
, я получаю страницу 404
// index.js
const sls = require('serverless-http')
const binaryMimeTypes = require('./binaryMimeTypes.js')
const nuxt = require('./nuxt')
module.exports.nuxt = async (event, context) => {
const app = await nuxt()
const handler = sls(app, {
binary: binaryMimeTypes
})
const result = await handler(event, context)
return result
}
Выполнение следующего с node nuxt.js
отлично работает
// nuxt.js
const { loadNuxt } = require('nuxt')
const app = require('express')()
const nuxt = async () => {
const nuxt = await loadNuxt('start')
app.use(nuxt.render)
app.listen(3000, '0.0.0.0')
}
nuxt()