Estoy aprendiendo express y ejecutar el código desde la terminal me da errores, a continuación se muestra mi código y el indicador de error de la terminal
const express = require("express"); const app = express(); app.listen(3000);terminal dijo:
ReferenceError: require is not defined in ES module scope, you can use import instead This file is being treated as an ES module because it has a '.js' file extension and 'C:\Users\ENIOLA YUSUFF\desktop\my-express-server\package.json' contains "type": "module". To treat it as a CommonJS script, rename it to use the '.cjs' file extension. at file:///C:/Users/ENIOLA%20YUSUFF/desktop/my-express-server/server.js:5:17 ←[90m at ModuleJob.run (node:internal/modules/esm/module_job:197:25)←[39m at async Promise.all (index 0) ←[90m at async ESMLoader.import (node:internal/modules/esm/loader:337:24)←[39m ←[90m at async loadESM (node:internal/process/esm_loader:88:5)←[39m ←[90m at async handleMainPromise (node:internal/modules/run_main:61:12)←[39mIntenté usar este código a continuación, pensando que era la diferencia en la versión del nodo, pero resolvió la mitad del problema.
import * as express from "express"; const app = express(); app.listen(3000);error terminal:
$ node server.js file:///C:/Users/ENIOLA%20YUSUFF/desktop/my-express-server/server.js:2 const app = express(); ^ TypeError: express is not a function at file:///C:/Users/ENIOLA%20YUSUFF/desktop/my-express-server/server.js:2:13 at ModuleJob.run (node:internal/modules/esm/module_job:197:25) at async Promise.all (index 0) at async ESMLoader.import (node:internal/modules/esm/loader:337:24) at async loadESM (node:internal/process/esm_loader:88:5) at async handleMainPromise (node:internal/modules/run_main:61:12)Prueba esto:
import express from 'express'; const app = express();Probablemente tenga "type": "module" en el archivo. Es por eso que debe usar import en lugar de require .
Debería poder usar import express from "express" para que funcione.