Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

Je cherche à réaliser un import de mon model avec sequelize.import. Leur code ressemble à ceci (c'est l'exemple de leur documentation):

// in your server file - e.g. app.js
const Project = sequelize.import(__dirname + "/path/to/models/project")

// The model definition is done in /path/to/models/project.js
// As you might notice, the DataTypes are the very same as explained above
module.exports = (sequelize, DataTypes) => {
  class Project extends sequelize.Model { }
  Project.init({
    name: DataTypes.STRING,
    description: DataTypes.TEXT
  }, { sequelize });
  return Project;
}

Et voici mon implémentation. J'ai deux fichiers: db.js et project.js. Pour db.js, voici le code:

require('dotenv').config();
const process = require('process');
const Sequelize = require('sequelize');

const sequelize = new Sequelize({
    dialect: 'sqlite',
    storage: process.env.DB_FILE_PATH,
    define: {
        timestamps: false,
        freezeTableName: true
    }
});

const Project = sequelize.import(__dirname + "/model/project.js")

et pour project.js, voici le code:

module.exports = (sequelize, DataTypes) => {
    class Project extends sequelize.Model { }
    Project.init({
        name: DataTypes.STRING,
        description: DataTypes.TEXT
    }, { sequelize });
    return Project;
}

Comme vous pouvez le voir, il s'agit presque d'un copier/coller de l'exemple dans la documentation (il y a juste une séparation en 2 fichiers et une instanciation de l'objet sequelize).

Ce que je veux

J'aimerais que l'erreur (décrite plus bas) ne soit plus lancée (et accessoirement comprendre pourquoi).

Ce que j'obtiens

J'obtiens une erreur quand j'excute le fichier db.js avec NodeJS. Voici l'erreur:

class Project extends sequelize.Model { }
                                    ^

TypeError: Class extends value undefined is not a constructor or null

Et je n'arrive pas à comprendre pourquoi cette erreur apparaît alors qu'il s'agit de l'exemple de la documentation. Est-ce qu'il manque quelque chose ? Ou bien est-ce qu'il y a une erreur quelque part ?

Merci d'avance pour votre aide :)

Aucune réponse