DEV Community

RD
RD

Posted on • Originally published at therdnotes.com

1

Debug Vercel Serverless Functions Locally

This note is about how I managed to debug Vercel Serverless Functions locally.

VLog

If you prefer to watch the video instead of reading article,

its available at https://youtu.be/giEL-ZLE6C4

Length: 05:22 mins

debug.js

As the vercel functions are exporting a function which takes (req, res),

I imported this function in another file and called it by passing fake/empty (req, res).

For this, created a file src/debug.js with following content:

const api = require("../api/hello");
console.log("Debug started");
api({}, {});
console.log("Debug ended");
Enter fullscreen mode Exit fullscreen mode

Debug config

Then added a file .vscode/launch.json, with following content:

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "pwa-node",
      "request": "launch",
      "name": "Launch Program",
      "skipFiles": ["<node_internals>/**"],
      "program": "${workspaceFolder}\\src\\debug.js"
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

With the above file, I have now got a debug configuration in VS Code's Run and Debug (CTRL+SHIFT+D) side window.

Now I can click(play button) and start the debugging.

Do not forget to add the breakpoint(s) in your Vercel Function script file.

Fake more

At this point, I was able to debug and fix my code, but the API function didn't run till end as I was using res.json() method to return the response, which clearly was missing in our fake res object passed initially.

Debugging output:

Debug output

So to make it work, I passed fake json() method as part of res object, which just prints to the console.

Now the debug.js file looks like this

const api = require("../api/hello");
console.log("Debug started");
api({}, { json: (response) => console.log("RESPONSE", response) });
console.log("Debug ended");
Enter fullscreen mode Exit fullscreen mode

Debugging now prints as below:

Debug output

That's it about this note.

HIH

~ @raevilman 🐦

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Billboard image

Create up to 10 Postgres Databases on Neon's free plan.

If you're starting a new project, Neon has got your databases covered. No credit cards. No trials. No getting in your way.

Try Neon for Free →

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay