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. You can find query doc here
the team of sequelize was deleting this function and replced it by a new function is
findByPk
like this
// search for known ids Project.findByPk(123).then(project => { // project will be an instance of Project and stores the content of the table entry // with id 123. if such an entry is not defined you will get null })
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With