re: A crash course on serverless-side rendering with Vue.js, Nuxt.js and AWS Lambda VIEW POST


Any way I can test my site locally? I've tried using the serverless-offline plugin, but although the local web server is starting up, I get no functional endpoints. Navigating to localhost:3000/ just gives a 404 in the server log.


I was having the same problem, but got it working with the following:

app.use((req, res) => setTimeout(() => nuxt.render(req, res), 0));

I have no idea why this works, I stole it from the jeehyukwon/nuxt-edge-serverless-template repository.


Can confirm this solution works. Install serverless-offline with npm i serverless-offline. Then in nuxt.js, just replace app.use(nuxt.render) with Pascal's code, above. Run the plugin with sls offline. Be sure to include the http in http://localhost:3000.


I believe it's safer if you wait till the renderer is ready. To do so, simply listen to the render:done hook. For instance something like should work:

app.use((req, res) => {
  nuxt.hook("render:done", () => {
    nuxt.render(req, res);

setTimeout doesn't seem very reliable to me :) On my mac I had to wait around 60ms for instance.

The following works as well.

app.use(async (req, res) => {
  await nuxt.ready()
  nuxt.render(req, res)

With the nuxt.hook("render:done" () => {}) I was getting random 404 errors when deployed. nuxt.ready() did the trick for me!

Awesome of you to share this! Feel free to add a PR to the GitHub repo with this edit. πŸ‘Œ

code of conduct - report abuse