I have two API routes defined in pages/api/item/get.ts and pages/api/item/set.ts. Both of these look very similar, importing an instance of a db:
import db from "../../../helpers/db";
export default function handler(req, res) {
//
}
The db file sets up an instance of a db connection and exports it. I've added a log to indicate when the module is executed:
// helpers/db.ts
const db = new Db()
console.log("Executing module");
export default db;
What I've found is that "Executing module" is logged once per API call (at compile time? NextJS logs show that API endpoints get compiled 🤔)
wait - compiling /api/item/get...
event - compiled client and server successfully in 103 ms (328 modules)
Further repeated calls of either API endpoint do not result in any more logs. IIRC JS modules should only be executed once so this behaviour is unexpected. Am I missing something?