- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
自从我使用 sequelize 已经有一段时间了,我最近开始使用 sequelize-cli 工具进行新设置,该工具似乎具有非常模板化的模型生成方法,我正在尝试确定如何访问我的模型以进行查询。在下面的尝试中,我起初以为我错误地访问了模型对象,但是当我控制台记录 sequelize 对象时,我注意到 Model
属性带有一个空对象。从技术上讲,这是模型引用的来源吗?除了从 cli 初始化并以相同的方式生成模型之外,还有什么我应该调整的吗?
在我的 API 调用中记录 sequelize 对象:
import db from '../../models/index';
console.log(db)
正如你在下面看到的
models: {}
是空的,据我所知,应该用
users
中定义的
users.js
模型填充
{
sequelize: Sequelize {
options: {
...
},
config: {
...
},
dialect: PostgresDialect {
...
},
queryInterface: PostgresQueryInterface {
sequelize: [Circular],
queryGenerator: [PostgresQueryGenerator]
},
models: {},
modelManager: ModelManager { models: [], sequelize: [Circular] },
connectionManager: ConnectionManager {
...
}
}, ...
这是由 cli 生成的 index.js(很想解释一下它是如何自动识别模型的):
/models/index.js
'use strict';
const fs = require('fs');
const path = require('path');
const { Sequelize } = require('sequelize');
const basename = path.basename(__filename);
const env = process.env.NODE_ENV || 'development';
const config = require(__dirname + '/../config/sequelize.js')[env];
const db = {};
let sequelize;
if (config.use_env_variable) {
sequelize = new Sequelize(process.env[config.use_env_variable], config);
} else {
sequelize = new Sequelize(config.database, config.username, config.password, config);
}
fs
.readdirSync(__dirname)
.filter(file => {
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
})
.forEach(file => {
const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes);
console.log(db[model.name])
db[model.name] = model;
});
Object.keys(db).forEach(modelName => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;
module.exports = db;
/models/users.js
:
'use strict';
const {
Model
} = require('sequelize');
module.exports = (sequelize, DataTypes) => {
class users extends Model {
/**
* Helper method for defining associations.
* This method is not a part of Sequelize lifecycle.
* The `models/index` file will call this method automatically.
*/
static associate(models) {
// define association here
}
};
users.init({
id: {
type: DataTypes.UUID,
defaultValue: Sequelize.UUIDV4
},
first_name: DataTypes.STRING,
last_name: DataTypes.STRING,
password: DataTypes.STRING,
email: DataTypes.STRING,
active: DataTypes.BOOLEAN,
deleted: DataTypes.BOOLEAN
}, {
sequelize,
modelName: 'users',
createdAt: 'created_at',
updatedAt: 'updated_at',
deletedAt: 'deleted_at',
paranoid: true,
underscored: true,
define: {
freezeTableName: true,
tableName: 'users'
}
});
return users;
};
最佳答案
sequelize-cli
和 init
的 model
生成器似乎并不总是像预期的那样适应应用程序环境。创建的样板文件存在三个问题。
fs.readdirSync(__dirname)
正在同步我计算机上的父目录,而不是我的应用程序目录 const model = require(path.join(__dirname, file))(sequelize, Sequelize.DataTypes);
遇到了同样的问题,应该是加载模型目录 const Sequelize = require('sequelize');
从模型生成器中丢失, users.js
在 const model = require(...)(sequelize, Sequelize.DataTypes);
中引用。没有它,它会抛出一个错误,说明 Sequelize 缺少 process.cwd()
并附加了
'/models/'
来纠正文件夹位置问题。
fs
.readdirSync(process.cwd() + '/models/') // Updated
.filter(file => {
console.log(file)
return (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js');
})
.forEach(file => {
console.log('file + Sequelize')
console.log(Sequelize);
const model = require('.' + path.join(__dirname, file))(sequelize, Sequelize.DataTypes); // Updated
console.log(db[model.name])
db[model.name] = model;
});
users.js(代码的更新部分):
'use strict';
const Sequelize = require('sequelize');
关于sequelize.js - 将模型附加到 Sequelize 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65061718/
可不可以命名为MVVM模型?因为View通过查看模型数据。 View 是否应该只与 ViewModelData 交互?我确实在某处读到正确的 MVVM 模型应该在 ViewModel 而不是 Mode
我正在阅读有关设计模式的文章,虽然作者们都认为观察者模式很酷,但在设计方面,每个人都在谈论 MVC。 我有点困惑,MVC 图不是循环的,代码流具有闭合拓扑不是很自然吗?为什么没有人谈论这种模式: mo
我正在开发一个 Sticky Notes 项目并在 WPF 中做 UI,显然将 MVVM 作为我的架构设计选择。我正在重新考虑我的模型、 View 和 View 模型应该是什么。 我有一个名为 Not
不要混淆:How can I convert List to Hashtable in C#? 我有一个模型列表,我想将它们组织成一个哈希表,以枚举作为键,模型列表(具有枚举的值)作为值。 publi
我只是花了一些时间阅读这些术语(我不经常使用它们,因为我们没有任何 MVC 应用程序,我通常只说“模型”),但我觉得根据上下文,这些意味着不同的东西: 实体 这很简单,它是数据库中的一行: 2) In
我想知道你们中是否有人知道一些很好的教程来解释大型应用程序的 MVVM。我发现关于 MVVM 的每个教程都只是基础知识解释(如何实现模型、 View 模型和 View ),但我对在应用程序页面之间传递
我想realm.delete() 我的 Realm 中除了一个模型之外的所有模型。有什么办法可以不列出所有这些吗? 也许是一种遍历 Realm 中当前存在的所有类型的方法? 最佳答案 您可以从您的 R
我正在尝试使用 alias 指令模拟一个 Eloquent 模型,如下所示: $transporter = \Mockery::mock('alias:' . Transporter::class)
我正在使用 stargazer 创建我的 plm 汇总表。 library(plm) library(pglm) data("Unions", package = "pglm") anb1 <- pl
我读了几篇与 ASP.NET 分层架构相关的文章和问题,但是读得太多后我有点困惑。 UI 层是在 ASP.NET MVC 中开发的,对于数据访问,我在项目中使用 EF。 我想通过一个例子来描述我的问题
我收到此消息错误: Inceptionv3.mlmodel: unable to read document 我下载了最新版本的 xcode。 9.4 版测试版 (9Q1004a) 最佳答案 您没有
(同样,一个 MVC 验证问题。我知道,我知道......) 我想使用 AutoMapper ( http://automapper.codeplex.com/ ) 来验证我的创建 View 中不在我
需要澄清一件事,现在我正在处理一个流程,其中我有两个 View 模型,一个依赖于另一个 View 模型,为了处理这件事,我尝试在我的基本 Activity 中注入(inject)两个 View 模型,
如果 WPF MVVM 应该没有代码,为什么在使用 ICommand 时,是否需要在 Window.xaml.cs 代码中实例化 DataContext 属性?我已经并排观看并关注了 YouTube
当我第一次听说 ASP.NET MVC 时,我认为这意味着应用程序由三个部分组成:模型、 View 和 Controller 。 然后我读到 NerdDinner并学习了存储库和 View 模型的方法
Platform : ubuntu 16.04 Python version: 3.5.2 mmdnn version : 0.2.5 Source framework with version :
我正在学习本教程:https://www.raywenderlich.com/160728/object-oriented-programming-swift ...并尝试对代码进行一些个人调整,看看
我正试图围绕 AngularJS。我很喜欢它,但一个核心概念似乎在逃避我——模型在哪里? 例如,如果我有一个显示多个交易列表的应用程序。一个列表向服务器查询匹配某些条件的分页事务集,另一个列表使用不同
我在为某个应用程序找出最佳方法时遇到了麻烦。我不太习惯取代旧 TLA(三层架构)的新架构,所以这就是我的来源。 在为我的应用程序(POCO 类,对吧??)设计模型和 DAL 时,我有以下疑问: 我的模
我有两个模型:Person 和 Department。每个人可以在一个部门工作。部门可以由多人管理。我不确定如何在 Django 模型中构建这种关系。 这是我不成功的尝试之一 [models.py]:
我是一名优秀的程序员,十分优秀!