Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

478
Views
sequelize.import no es una función

Soy nuevo para expresar.

Quiero importar archivos para secuenciar y declarado:

 const model = sequelize.import(path.join(__dirname, file)) ^

Devolvió el siguiente tipo de error

 TypeError: sequelize.import is not a function

Y luego, código editado para

 var model = require(path.join(__dirname, file))(sequelize, Sequelize); ^

Entonces el error es:

 TypeError: require(...) is not a function

Creo que es el error al importar cosas....

Aquí está mi código de archivo completo:

 const fs = require('fs'); const path = require('path'); const Sequelize = require('sequelize'); const config = require('../config/config'); const db = {} var __dirname = path.resolve(); const sequelize = new Sequelize( config.db.database, config.db.user, config.db.password, config.db.options ) fs .readdirSync(__dirname) .filter((file) => file !== 'index.js' ) .forEach((file) => { //const model = sequelize.import(path.join(__dirname, file)) var model = require(path.join(__dirname, file))(sequelize, Sequelize); db[model.name] = model }) db.sequelize = sequelize db.Sequelize = Sequelize module.exports = db
over 4 years ago · Santiago Trujillo
7 answers
Answer question

0

  1. Verifique que no tenga archivos en el directorio de modelos que no estén exportando nada.
  2. Verifique que sus exportaciones sean funciones con los mismos parámetros que la instancia a la que se llama en la instrucción require.

En cualquier caso, como el mío, tenía archivos vacíos en mi directorio de modelos. require(...) no es una función simplemente porque la lógica del índice itera e importa archivos que no exportan nada del directorio de modelos.

over 4 years ago · Santiago Trujillo Report

0

en mi caso reemplacé este código

const model = require(path.join(__dirname, file))(secuela, Sequelize.DataTypes);

con este :

const model = require(path.join(__dirname, file)).default(sequelize, Sequelize.DataTypes);

over 4 years ago · Santiago Trujillo Report

0

Las personas que dicen que la degradación no funcionó: ¡Cuidado con su archivo index.js!

Para mí, bajando a ^ 5.22.3 y cambiando

 module.exports = (sequelize, DataTypes) => { sequelize.define('User', { email: { type: DataTypes.STRING, unique: true }, password: { type: DataTypes.STRING } }) }

para

 module.exports = (sequelize, DataTypes) => sequelize.define('User', { email: { type: DataTypes.STRING, unique: true }, password: DataTypes.STRING })

trabajó. Ese fue el problema para mí.

over 4 years ago · Santiago Trujillo Report

0

Esto podría ayudar a alguien más, en la versión 6.6.5 está en desuso y debe reemplazarlo con sequelize.define .

over 4 years ago · Santiago Trujillo Report

0

A partir de ahora, pude solucionar el problema degradando la versión del módulo de secuenciación en su paquete.json a "sequelize": "^5.22.3", . hazme saber si también está arreglado en tu lado.

Editar: cualquier versión de secuela en < 6.0.0 debería funcionar normalmente

over 4 years ago · Santiago Trujillo Report

0

El error se debe al uso del objeto de importación secuencial. En su lugar, debe usar la función de solicitud require incorporada de Node. Así que cambie esta línea en sus models/index.js :

 const model = sequelize['import'](path.join(__dirname, file))

para:

 const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes)

También puede simplemente regenerar el directorio de models y leer sus modelos sin el antiguo index.js si lo encuentra más fácil:

 mv models models.bak && sequelize init:models && mv models.bak/index.js models.bak/index.js.bak && mv models.bak/* models/ && rm models.bak

Ese trazador de líneas solucionará su problema si tiene instalado globalmente Sequelize-cli. Si no lo haces, puedes usar este:

 npm i --save-dev sequelize-cli && mv models models.bak && npx sequelize init:models && mv models.bak/index.js models.bak/index.js.bak && mv models.bak/* models/ && rm models.bak

Es posible que también deba actualizar su carpeta de configuración. Utilizo una configuración de JavaScript para inyectar ENV, por lo que tuve que agregar para cambiar mi línea const config = require(... para reflejar eso. Si usó uno de mis revestimientos, su antiguo archivo models/index.js ahora está en el índice .js.bak si necesita obtener elementos personalizados de él.

over 4 years ago · Santiago Trujillo Report

0

Compruebe si ha exportado el modelo utilizando la antigua sintaxis de JavaScript.

En mi caso bastó con cambiar el código de:

 export default (sequelize, DataTypes) => { ... }

para

 module.exports = (sequelize, DataTypes) => { ... }
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!