Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

926
Visualizações
Usar resultados lowdb en ERR_REQUIRE_ESM

Estoy tratando de usar LowDB en un proyecto de Node y Typescript, pero me sigue dando un error de Módulo ES...

Error:

 Error [ERR_REQUIRE_ESM]: Must use import to load ES Module: C:\{PATH_TO}\node_modules\lowdb\lib\index.js require() of ES modules is not supported. require() of C:\{PATH_TO}\node_modules\lowdb\lib\index.js from C:\{PATH_TO}\src\index.ts is an ES module file as it is a .js file whose nearest parent package.json contains "type": "module" which defines all .js files in that package scope as ES modules. Instead rename index.js to end in .cjs, change the requiring code to use import(), or remove "type": "module" from C:\{PATH_TO}\node_modules\lowdb\package.json.

Estoy usando un tsconfig.json que se generó usando tsc --init y tiene estas opciones:

 { "compilerOptions": { "target": "es5", "module": "commonjs", "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true } }

Aquí está mi index.ts, copiado directamente de lowdb. Curiosamente, solo arroja este error cuando importo JSONFile .

 import { join } from "path"; import { Low, JSONFile } from "lowdb"; const file = join(__dirname, "db.json"); const adapter = new JSONFile(file); const db = new Low(adapter);

El comando que uso para ejecutar esto es nodemon --watch "src/**" --ext "ts,json" --exec "ts-node src/index.ts"

He estado leyendo problemas de GitHub toda la mañana y parece que no puedo resolver este problema.

Hice un GitHub Repo , para que puedas descargarlo y probarlo.

Estoy en el nodo v16.x. ¡Gracias de antemano por cualquier ayuda!

EDITAR: Dije F-it, y escribí mi propia base de datos json...

 // lowdb was thorwing errors, so I wrote this one as a stand-in import path from "path"; import fspromises from "fs/promises"; import fs from "fs"; // path to json file const FILE_PATH = path.join(__dirname, "database.json"); export const initJSONDatabase = <T>(initialData: T) => { const read = async () => { const data = await fspromises.readFile(FILE_PATH, { encoding: "utf-8" }); return JSON.parse(data) as unknown as T; }; const write = async (data: T) => { await fspromises.writeFile(FILE_PATH, JSON.stringify(data), { encoding: "utf-8", }); }; if (!fs.existsSync(FILE_PATH)) { write(initialData); } return { read, write, }; }; // -- Usage -- // // const defaultState = { // users: [], // posts: [] // }; // const db = initJSONDatabase(defaultState); // const data = await db.read(); // data.users.push('Jay-Z'); // await db.write(data);
over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Tuve el problema de usar require() con el nodo v 12.20.0 . Uso el nodo v 12.18.3 y,

 "dependencies": { "lowdb": "^1.0.0", //the newest version had the problem "socket.io": "^3.1.0", "supervisor": "^0.12.0" },

y ahora está funcionando!

over 4 years ago · Santiago Trujillo Relatório

0

Estaba teniendo el mismo problema con "target": "ES2020" , alguien ya hizo una solución que funciona bien para mí: https://github.com/typicode/lowdb/issues/471#issuecomment-850908461

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda