Por que ocorreu esse erro e como concertar?
Por que ocorreu esse erro e como concertar?
Olá, Luidi! Como vai?
O erro que você está enfrentando ocorre porque a variável __dirname
não está definida no contexto em que está sendo usada. Isso pode acontecer se você estiver utilizando módulos ES6, que não suportam __dirname
de forma nativa.
Para corrigir isso, você pode definir __dirname
manualmente usando o módulo path
do Node.js. Aqui está um exemplo de como fazer isso:
import path from 'path';
import { fileURLToPath } from 'url';
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
// Agora você pode usar __dirname como de costume
fs.readdirSync(__dirname)
.filter(file => {
return (
file.indexOf('.') !== 0 &&
file !== basename &&
file.slice(-3) === '.js' &&
file.indexOf('.test.js') === -1
);
})
.forEach(file => {
const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes);
db[model.name] = model;
});
Com isso, você deve conseguir resolver o problema.
Espero ter ajudado e bons estudos!
Descobri o problema, no caso era que o ESLint tinha: "browser": true e era para estar "node": true. Não sei como o ESLint não acusou esse erro para a professora do curso já que ela está usando o ESLint também!