javascript - findAll() 不是 sequelize 中的函数

标签 javascript node.js sequelize.js

我正在使用带有 Sequelize 的 Express.js
我正在尝试从表中获取数据但 findALL() 方法不起作用
在这里,我正在分享我的模型和 Controller 文件
checkout_product 模型

module.exports = function (sequelize, DataTypes) {
    var Checkout_product = sequelize.define(
        "Checkout_products",
        {
            name: {
                type: DataTypes.STRING
            },
            ptice: {
                type: DataTypes.STRING
            },
            image: {
                type: DataTypes.STRING
            },
            quantity: {
                type: DataTypes.INTEGER
            },
        },
    );

   Checkout_product.associate = function (models) {
        Checkout_product.hasMany(models.Product_attribute, {
            foreignKey: "product_id",
            sourceKey: "id"
        });
    };

    return Checkout_product;
};
product_attribute 模型

module.exports = function (sequelize, DataTypes) {
    var Product_attribute = sequelize.define(
        "product_attributes",
       {
            product_id: {
                type: DataTypes.INTEGER
            },
            attribute_name: {
                type: DataTypes.STRING
            },
            attribute: {
                type: DataTypes.STRING
            },
            price: {
                type: DataTypes.STRING
            },
        },
    );

     Product_attribute.associate = (models) => {
        Product_attribute.belongsTo(models.Checkout_product, {
            foreignKey: "product_id",
            sourceKey: "id"
        });
    };

    return Product_attribute;
};



模型/index.js 文件
"use strict";

const fs = require("fs");
const path = require("path");
const Sequelize = require("sequelize");
const config = require("./../config/development").database;

let sequelize = new Sequelize(
  config.database,
  config.username,
  config.password,
  config
);
let db = {};

fs
  .readdirSync(__dirname)
  .filter(function(file) {
    return file.indexOf(".") !== 0 && file !== "index.js";
  })
  .forEach(function(file) {
    let model = require(path.join(__dirname, file));
    db[model.name] = model;
  });
Object.keys(db).forEach(function(modelName) {
  if ("associate" in db[modelName]) {
    db[modelName].associate(db);
  }
});

db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;
Controller
const Checkout_product  = require('../models');

module.exports.checkout_product_get = function (req, res) {
  Checkout_product.findAll({
     include: [ {
       model : Product_attributes,
     }]
  })
  .then(checkout_product => {
        res.json(checkout_product)
  })
}
我坚持从 checkout_product 和它的子模型 product_attribute 模型中获取数据,
每次我遇到同样的错误时: TypeError: Checkout_product.findAll is not a function

最佳答案

const Checkout_product = require('../models').table_name;
你可以试试吗

关于javascript - findAll() 不是 sequelize 中的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65231796/

相关文章:

jquery - jsdom和jquery修改dom元素的css样式

node.js - 在 hasMany 关联上包含仅返回 sequelize nodeJs 中的许多结果之一

javascript - Sequelize 无法创建表,但是当我在 MySQL CLI 中运行它时它可以工作

javascript - Vue.js 在哪里存储非组件数据属性?

javascript - Angularjs Material 或 AngularJS 在 Web 服务中存储多个选择下拉数据

javascript - 在 Bootstrap Modal 中动态更新按钮 onclick

javascript - 使用 glob 导入多个文件

node.js - 如何在 Node js sequelize中传递列值

node.js - 在通过子句 Sequelize 中包含模型

javascript - 单击节点时获取 cytoscape.js 中的边列表