【发布时间】:2020-04-08 14:00:57
【问题描述】:
以下是我的 js 文件。 我从模型中返回了一个对象,然后尝试将它导入我的控制器 js 文件。但它向我抛出了 admin_user.findAll 不是函数的错误。
helloController.js
var DataTypes = require("sequelize/lib/data-types");
const dbconconfig = require("../dbseq.config.js").db;
var admin_users = require("../models/admin_users");
var admin_roles = require("../models/admin_roles");
const logger = require("tracer").colorConsole();
admin_roles = new sequelize(dbconconfig);
admin_users = new sequelize(dbconconfig);
async sendDB(req, res) {
logger.info("db called");
admin_users
.findAll({
include: [{ model: admin_roles }]
})
.then(admin_users => {
const resObj = admin_users.map(admin_users => {
return Object.assign(
{}
Admin_user.js - 返回类型为 admin_users (sequelize, DataTypes)
> admin_users.js
module.exports = function(sequelize, DataTypes) {
const admin_users = sequelize.define(
"adminUsers",
{
id: {
type: DataTypes.INTEGER(22),
allowNull: false,
primaryKey: true,
autoIncrement: true,
field: "id"
},
countryCode: {
type: DataTypes.STRING(10),
allowNull: true,
defaultValue: "+91",
field: "country_code"
},
mobileNo: {
type: DataTypes.STRING(20),
allowNull: false,
field: "mobile_no"
},
email: {
type: DataTypes.STRING(128),
allowNull: true,
field: "email"
},
firstName: {
type: DataTypes.STRING(128),
allowNull: true,
field: "first_name"
},
lastName: {
type: DataTypes.STRING(128),
allowNull: true,
field: "last_name"
},
lockVersion: {
type: DataTypes.INTEGER(11),
allowNull: true,
defaultValue: "0",
field: "lock_version"
},
blocked: {
type: DataTypes.INTEGER(1),
allowNull: true,
defaultValue: "0",
field: "blocked"
},
deleted: {
type: DataTypes.INTEGER(1),
allowNull: true,
defaultValue: "0",
field: "deleted"
},
createdAt: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: sequelize.literal("CURRENT_TIMESTAMP"),
field: "created_at"
},
updatedAt: {
type: DataTypes.DATE,
allowNull: false,
defaultValue: sequelize.literal("CURRENT_TIMESTAMP"),
field: "updated_at"
},
password: {
type: DataTypes.STRING(128),
allowNull: false,
field: "password"
},
role: {
type: DataTypes.STRING(128),
allowNull: true,
field: "role"
}
},
{
tableName: "admin_users"
}
);
adminUser.associate = models => {
adminUser.belongsTo(models.adminRoles, {
foreignKey: "id"
});
};
return admin_users;
};
我无法弄清楚为什么它无法找到 findAll 函数 续集中定义。
我尝试了其他方法来导入模型,但似乎没有任何效果。
如果我应该添加更多信息/代码以使这个问题易于理解,请告诉我。
【问题讨论】:
-
应该是 db.admin_users .findAll({ include: [{ model: admin_roles }] })。
-
添加 db.admin_users。
-
你好 Prabhjot,添加 db 给我错误 - UnhandledPromiseRejectionWarning: ReferenceError: db is not defined。这是因为我没有使用 index.js 文件。我直接导入模块。
标签: javascript node.js sequelize.js