Javascript findAll()不是sequelize中的函数
我正在将Express.js与sequelize一起使用 我试图从表中获取数据,但findALL方法不起作用 在这里,我正在共享我的模型和控制器文件 检验产品模型 产品属性模型 models/index.js文件 控制器 我一直在从checkout_product获取数据&它是子模型product_属性模型,Javascript findAll()不是sequelize中的函数,javascript,node.js,sequelize.js,Javascript,Node.js,Sequelize.js,我正在将Express.js与sequelize一起使用 我试图从表中获取数据,但findALL方法不起作用 在这里,我正在共享我的模型和控制器文件 检验产品模型 产品属性模型 models/index.js文件 控制器 我一直在从checkout_product获取数据&它是子模型product_属性模型, 每次我都会遇到相同的错误:TypeError:Checkout\u product.findAll不是一个函数const Checkout\u product=require'../mod
每次我都会遇到相同的错误:TypeError:Checkout\u product.findAll不是一个函数const Checkout\u product=require'../models'.table\u name;
您可以试试吗您正在使用Sequelize的旧方法来初始化模型。我们提供并建议了使用require和extends的更新方法。有关更多信息,请查看 关于你的代码 您既没有正确初始化数据库结构,也没有在以后正确使用它 首先在index.js中输入代码: .forEachfunctionfile{ 让model=requirepath.join\uu dirname,文件; db[model.name]=模型; }; 只需在db对象中加载模型文件。但这些文件是以sequelize对象作为参数调用的函数。这是通过将它们提供给sequelize.import来完成的,后者管理对已定义模型函数的正确调用以创建模型实例。检查 同样,在成功初始化db之后,在控制器代码中,require“../models”返回总db对象。因此,如果您想在您的案例中使用特定模型作为签出产品,您必须在对象中访问它: const db=需要“../models”; db.Checkout\u product.findAll。。。
我使用sequlize.import方法fs.readdirSync_uudirname.filterfunctionfile{return file.indexOf'.!==0&&file!==basename&&file.slice-3==='.js';}.forEachfunctionfile{var model=sequelize[import]path.join_udirname,file;db[model.name]=model;};现在,我得到了这个错误:返回文件.indexOf'.!==0&&file!==basename&&file.slice-3==='.js';ReferenceError:basename未定义我无法理解您的代码段,basename未在任何地方初始化,因此说undefined是正确的
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;
};
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;
};
"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;
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)
})
}