I am getting a very strange problem with sequelize, When I try to call the function findAll it works fine (same for create and destroy), but when I try to call function "findById", it throws "findById is not a function" (same for "FindOne").
//works fine
var gammes = models.gamme.findAll().then(function(gammes) {
res.render('admin/gammes/gestion_gamme',{
layout: 'admin/layouts/structure' ,
gammes : gammes,
js: "gammes"
});
});
// throws models.gamme.findById is not a function
models.gamme.findById(req.params.id).then(function(gamme) {
gamme.update({
nom: req.body.nom
}).then(function () {
res.redirect("/gammes");
})
});
Gamme.js model
module.exports = function (sequelize, DataTypes) {
"use strict";
var gamme = sequelize.define('gamme', {
id_gamme: {
type: DataTypes.INTEGER.UNSIGNED,
autoIncrement: true,
primaryKey: true
},
nom: {
type: DataTypes.STRING,
allowNull: false
}
}, {
classMethods: {},
timestamps: false
});
return gamme;
};
With Sequelize v5, findById() was replaced by findByPk(). Replace findById using findByPk and everything should work fine.
Directly pass value.
the team of sequelize was deleting this function and replced it by a new function is
like this