我在sequelize上遇到了一个非常奇怪的问题,当我try 调用函数findAll时,它工作得很好(create和destroy也是如此),但当我try 调用函数"findById"时,它抛出"findById不是函数"(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");
        })
    });

加姆.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;
};

推荐答案

在Sequelize v5中,findById()被findByPk()取代.使用findByPk替换findById,一切都会正常工作.你可以找到查询文档here

Node.js相关问答推荐

node 无法验证第一个证书

Spotify Auth访问令牌给出错误代码400

如何使用多个OR参数从多个集合聚合

如何在Sequelize with Postgres中将m:n关联表ID从整数迁移到UUID?

如何防止Socket-io实例化React/Next.js中的两个套接字(当前在服务器*和*客户端实例化)

Nestjs swc 错误:找不到模块项目路径/src/app.module

将代码转换为 ES6 Discord.js 的问题

mongoose.model() 方法返回未定义

NestJS 共享模块的问题

file.slim.js 中的苗条是什么

Node.js、Cygwin 和 Socket.io 走进一家wine 吧……Node.js 抛出 ENOBUFS,所有人都死了

Webpack TypeScript module.hot 不存在

运行摩卡+伊斯坦布尔+通天塔

在多个 .env 文件之间切换,例如 .env.development 和 node.js

具有多个条件的mongoose 查找

向 Stripe 提交付款请求时出现没有此类令牌错误

Mongoose - 保存字符串数组

什么是 JavaScript 中的REPL?

node.js 在控制台上显示未定义

Node.js - 使用异步库 - 带有对象的 async.foreach