Esta es mi clase user.js Sequelize:
'use strict'; const {Sequelize} = require('sequelize'); const { Model } = require('sequelize'); module.exports = (sequelize, DataTypes) => { class User extends Model { /** * Helper method for defining associations. * This method is not a part of Sequelize lifecycle. * The `models/index` file will call this method automatically. */ static init(sequelize) { super.init( { name: Sequelize.STRING, }, { sequelize, }); this.addHook('beforeSave', async (user) => { return user.id = uuid(); }); return this; } static associate(models) { // define association here User.hasMany(UserRole, { foreignKey: { field:'UserId', allowNull: false, }, }); } } User.init({ Id: DataTypes.UUID, Name: DataTypes.STRING, UserName: DataTypes.STRING, Email: DataTypes.STRING, Password: DataTypes.STRING, PhoneNumber: DataTypes.STRING, MobileNumber: DataTypes.STRING, DateOfBirth: DataTypes.DATE, LockoutEnabled: DataTypes.BOOLEAN, LockoutEnd: DataTypes.DATE }, { sequelize, modelName: 'User', }); return User; };Estoy tratando de declarar una instancia para hacer una llamada findAll a mi base de datos.
Hasta ahora, esto es lo que tengo y sigue diciendo que findAll no es una función:
const {Sequelize} = require('sequelize'); const {userModel}= require('../../models/user'); function GetAll(){ return user.findAll(); } module.exports = { GetAll, }Soy nuevo en Express JS y más aún en Sequelize.
Mire la pregunta y mi respuesta aquí para descubrir cómo registrar modelos y asociaciones.
Exporta una función que devuelve un modelo registrado, por lo que debe llamarlo primero pasando una instancia de Sequelize y DataTypes y luego puede usar el modelo devuelto para llamar a un método como findAll . Es mejor registrar todos los modelos primero y solo después registrar todas las asociaciones entre ellos (consulte el enlace mencionado).