web-dev-qa-db-fra.com

sequelize "findbyid" n'est pas une fonction mais apparemment "findAll" est

Je reçois un problème très étrange avec sequelize, lorsque j'essaie d'appeler la fonction findAll, cela fonctionne bien (même chose pour créer et détruire), mais quand j'essaie d'appeler la fonction "findById", il lance "findById n'est pas une fonction" ( idem pour "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");
        })
    });

Modèle Gamme.js

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;
};
30
Amanite Laurine

Avec Sequelize v5, findById () a été remplacé par findByPk (). Remplacez findById à l'aide de findByPk et tout devrait fonctionner correctement.

44
isma

l'équipe de séquestre supprimait cette fonction et l'a remplacée par une nouvelle fonction est

findByPk

comme ça

// 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
})
1
bahri noredine

Passez directement la valeur.

Question.findByPk(question_id).then(question => {
            return res.status(200).json({
                question: question
           });
}).catch(err => {
     console.log(err);
});
0
Prathamesh More