Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

sequelize "findbyid" is not a function but apparently "findAll" is

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; }; 
like image 237
Amanite Laurine Avatar asked Jan 10 '17 20:01

Amanite Laurine


Video Answer


2 Answers

With Sequelize v5, findById() was replaced by findByPk(). Replace findById using findByPk and everything should work fine. You can find query doc here

like image 161
isma Avatar answered Sep 22 '22 08:09

isma


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 }) 
like image 43
bahri noredine Avatar answered Sep 22 '22 08:09

bahri noredine