'use strict';
const Sequelize = require("sequelize");
class Model extends Sequelize.Model {
static init(sequelize, DataTypes) {
return super.init(
{
// properties
},
{ sequelize }
);
}
static associate(models) {
}
async modelMethod() {
}
}
module.exports = Model;
let modelClass = require('../models/' + modelFile);
let model = modelClass.init(sequelize, Sequelize);
然后在控制器文件中调用该模型作为控制器的属性
async controllerMethod(req, res) {
let info = await this.model.modelMethod();
res.send(info);
}
我收到的错误-
TypeError:this.model.modelMethod不是Controller.ControllerMethod(/usr/app/controllers/controller.js:83:41)位于Layer.Handle[as handle_request](/usr/app/node_modules/express/lib/router/Layer.js:95:5)位于next(/usr/app/node_modules/express/lib/router/Layer.js:137:13)位于:16:23)在promise._settlepromiseFromHandler(/usr/app/node_modules/bluebird/js/release/promise.js:512:31)在promise._settlepromise(/usr/app/node_modules/bluebird/js/release/promise.js:569:18)在promise._settlepromise0(/usr/app/node_modules/bluebird/js/release/promise.js:614:10)在
尝试输出类的方法会得到这样的结果-
console.log(Object.getOwnPropertyNames(this.model));
[ 'length',
'prototype',
'init',
'associate',
'name',
'sequelize',
'options',
'associations',
'underscored',
'tableName',
'_schema',
'_schemaDelimiter',
'rawAttributes',
'primaryKeys',
'_timestampAttributes',
'_readOnlyAttributes',
'_hasReadOnlyAttributes',
'_isReadOnlyAttribute',
'_dataTypeChanges',
'_dataTypeSanitizers',
'_booleanAttributes',
'_dateAttributes',
'_hstoreAttributes',
'_rangeAttributes',
'_jsonAttributes',
'_geometryAttributes',
'_virtualAttributes',
'_defaultValues',
'fieldRawAttributesMap',
'fieldAttributeMap',
'uniqueKeys',
'_hasBooleanAttributes',
'_isBooleanAttribute',
'_hasDateAttributes',
'_isDateAttribute',
'_hasHstoreAttributes',
'_isHstoreAttribute',
'_hasRangeAttributes',
'_isRangeAttribute',
'_hasJsonAttributes',
'_isJsonAttribute',
'_hasVirtualAttributes',
'_isVirtualAttribute',
'_hasGeometryAttributes',
'_isGeometryAttribute',
'_hasDefaultValues',
'attributes',
'tableAttributes',
'primaryKeyAttributes',
'primaryKeyAttribute',
'primaryKeyField',
'_hasPrimaryKeys',
'_isPrimaryKey',
'autoIncrementAttribute',
'_scope',
'_scopeNames' ]
看了曼尼什的评论后,我决定重新尝试一下。
显然,for instance方法的工作方式是在调用.init方法后初始化模型。
所以-
let model = ModelClass.init(sequelize, Sequelize);
model = new model();
我有以下问题,我有2个模型:客户端 和性别: 我的ClientController: 但我又想到了以下几点: 节点./bin/www OBS:在与透视表的N:m关系中,一切正常,有人能帮我吗?
我不明白为什么sequelize会生成这个专栏。 错误有: 未处理的拒绝SequelizeDatabaseError:列“PermissionID”不存在于Query.FormatError(/Home/Baptiste/IUT2/Projets3/Code/M3301/Node_Modules/Sequelize/lib/Dialects/Postgres/Query.js:366:16)的/H
我正在尝试使用squeelize orm将SQL Server与node.js一起使用。但我一直收到“未找到主机”错误: HostNotFounderRror[SequelizeHostNotFounderRror]:无法连接到LocalHost//SQLExPress:1433-getaddrinfo ENOTFOUND LocalHost//SQLExPress 无法连接到localhost/
我有一个节点js服务器,它正在使用Sequelize创建和删除数据库。当我在“users”表中创建新用户时,查询正常运行,服务器返回响应。但当我试图从“users”表中删除用户时,查询运行但未解析Promission,因此我没有得到服务器的响应。下面是我的代码: 我在控制台中看到的内容: 过了一会儿: 我也删除了其他表中的内容,并且它们都起作用了,所以看起来Users表有些特殊。问题是,当我查看数
我在实现下面的代码时失败了。“required”是一个用于内部连接的关键字,但如果我们保留,它就不起作用。 如果不保持必需,它将在项目和承包商上创建一个左外部联接。建议我为上面的Senario提供一个示例。
我想知道使用Sequelize执行此请求所要编写的代码: