DEV Community


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

johey profile image
Johan Smolinski

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.

lewebsimple profile image
Pascal Martineau

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.

pachiradig profile image

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.

svedova profile image
Savas Vedova

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.

Thread Thread
aphilippartd profile image
Alexis Philippart de Foy

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!

Thread Thread
adnanrahic profile image
Adnan Rahić Author

Awesome of you to share this! Feel free to add a PR to the GitHub repo with this edit. 👌