I’m trying to initialise a very simple server using node. As I understand ‘require’ and ‘HTTP’ are built-in modules which I can use.
So my code looks as the following:
const http = require('http'); const server = http.createServer(() => { console.log("I hear you!"); }); server.listen(3000);
when i run node server.js
i get the following error:
const http = require('http'); ^ ReferenceError: require is not defined at file:///D:/Project/ZTM/recobrain-backend/server.js:1:14 at ModuleJob.run (internal/modules/esm/module_job.js:152:23) at async Loader.import (internal/modules/esm/loader.js:166:24) at async Object.loadESM (internal/process/esm_loader.js:68:5)
I tried to install ‘require’ both locally and globally with the same result.
Finally, I managed to get it work with this piece of code:
import * as http from 'http';
The question is, why require syntax doesn’t work?
Advertisement
Answer
Just remove type: "module"
from package.js
and you should be able to use require()
or alternatively you can set it to type: "commonjs"