Skip to content

API routes executing modules more than once #32821

@finallyblueskies

Description

@finallyblueskies

What version of Next.js are you using?

12.0.7

What version of Node.js are you using?

16.3.0

What browser are you using?

Any

What operating system are you using?

macOS

How are you deploying your application?

next dev

Describe the Bug

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 first compile? NextJS logs show that API endpoints get compiled)

wait  - compiling /api/item/get...
event - compiled client and server successfully in 103 ms (328 modules)

Expected Behavior

Further repeated calls to either API endpoint do not result in any more logs. IIRC JS modules should only be executed once so this behaviour is unexpected - I should only be getting one log from the helpers/db module unless I am missing something.

To Reproduce

--

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugIssue was opened via the bug report template.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions