Tag: sequelize.js

在belongsToMany关联的“through”表上查找 – 查找或创build

首先,我对Node.JS比较陌生,甚至比Sequelize更新,这一直困扰着我。 我有以下模型实体: Match.js module.exports = function(sequelize, DataTypes) { var Match = sequelize.define('Match', { matchId: { type: DataTypes.BIGINT, field: 'match_id' }, server: { type: DataTypes.STRING }, (…) rankedBoo: { type: DataTypes.BOOLEAN, field: 'ranked_boo' } }, { classMethods: { associate: function(models) { Match.belongsToMany(models.Summoner, {as: 'Participants', through: 'SummonerMatch'}); } }, freezeTableName: true, underscored: true }); return Match; }; […]

Sequelize – 在属于To Many关联的模型中使用set,添加,创build方法

我是新的工作与sequ​​elize,我还不知道,如何实现关联模型与BelongsToMany关联时创build的方法。 例如: 我有两个模型用户和属性,一个用户可以有多个属性,因为我有创build中间模型PropertiesByUser当我有userId,propertyId,状态和其他字段的每个原因。 我创build的用户和属性分开,但是当我想添加一个属性到用户是当我的过程是复杂的,因为我不知道如何创build或使用模型PropertiesByUser创build,添加,设置,属性为用户,或添加用户的属性,有人可以帮助我吗? 我已经阅读过博客,有些方法可以使用,但任何解决scheme的作品。 🙁

用SQL或应用程序语言定义数据库模式会更好吗?

我有2个服务正在运行。 一个是Node.js应用程序,另一个是PSQL数据库。 我不知道我应该在哪里定义我的数据库模式。 一些像Sequelize这样的库用应用程序语言来定义它(在这种情况下是javascript)。 var User = sequelize.define('user', { firstName: { type: Sequelize.STRING, field: 'first_name' // Will result in an attribute that is firstName when user facing but first_name in the database }, lastName: { type: Sequelize.STRING } }); 但是我认为在纯SQL中定义它们会更好 CREATE TABLE users ( id SERIAL, first_name varchar(85), PRIMARY KEY (id) ); 这样,其他其他平台上的其他应用程序就可以使用数据库,而不会与模式混淆。 在我看来,数据库定义应该独立于应用程序的语言。 有什么我不考虑? […]

Sequelize中的模型和迁移定义之间的主要区别是什么?

SQL数据库的一些Sequelize用户在早期经常使用sync({ force: true }) ,然后切换到迁移。 我很困惑,因为迁移和模型似乎有类似的语法,但也有一些似乎并没有被强调的差异。 一些观察(可能是错误的): 两者中的选项对象是不同的:模型中的options.indexes对象在迁移中不起作用(但在模型中起作用) 使用unique: 'somename'自定义索引名称在迁移字段属性中不起作用(但适用于模型); 但一个unique: true在两个unique: true作品 外键需要显式创build – 并且需要在迁移中设置references (但在模型中,hasMany / belongsTo会自动生成外键字段和外键引用) id , updatedAt和updatedAt必须在迁移中手动创build,而不是模型 最后两个是合理的,因为它是划分迁移责任(build立数据库模式)与模型 – 但是迁移支持/如何工作似乎不同的类似的项目, sync选项加​​剧了我的困惑。 一些问题: 在Sequelize中迁移和模型之间要记住的主要区别是什么(而不是两者之间的一般哲学)? 模型中的哪些选项(使用sync选项时)在迁移中起作用? 当从sync切换到离散迁移时,其他人是否简单地将模型文件复制到迁移? 你是否删除了只适用于模型的无关信息的一部分? 只适用于迁移?

sequelize – 更新行而不更改updated_at字段

我在节点开发中使用sequelize.js库作为ORM。 使用sequelize更新行时, “updated_at”字段已更改为当前时间戳。 我想知道如何防止这种情况? 在不更改“updated_at”字段的情况下,我想使用sequizeize API更新其他字段,而不是运行原始查询。

发送json对象作为url参数

我创build一个Angular应用程序使用ngResource,我想发送一个search/filter/分页(我在后端使用ORM作为sequelize,我想使用该对象直接应用search,筛选和分页stuf)parameter passing给一个GET请求,所有在JSON对象中,都有任何方式强制这个对象,或者有更好的方法来做到这一点。 这是我想要做的一个例子 rank: { $or: { $lt: 1000, $eq: null } }

我如何鉴别续集?

我有一个路由,我必须通过在请求体中search任何现有用户名和密码的实例来validation是否可以继续并validation用户身份。 我不确定如何执行此操作(在Sequelize中search和检查实例),因为文档对于Sequelize来说是相当新的。 我试图通过阅读这里http://docs.sequelizejs.com/en/latest/api/model/例如User.findOne db.User.findOne({ where: { password: req.password, username: req.username } }).then(function(address) { if(address.User !== null) { console.log('User name: '+address.User.name); } else { console.log('User name: NO USER'); } 但不确定的确切的语法/方法。 我有这样的东西: app.post('/authenticate', function (req, res) { //TODO validate req.body.username and req.body.password //if is invalid, return 401 if (!(req.body.username === 'john.doe' && req.body.password === 'foobar')) { res.status(401).send('Wrong […]

获得续集所属的许多协会的数量

我有两种模式, project和user在几个方面相互关联。 首先, project由具有以下关联的user拥有: Project.belongsTo(models.User, { as: 'Owner', foreignKey: 'userId' }); 其次, project和user通过喜欢 project的user相关联。 Project.belongsToMany(models.User, { as: 'UserLikes', through: models.ProjectLikes, foreignKey: 'projectId' }); User.belongsToMany(models.Project, { as: 'LikedProjects', through: models.ProjectLikes, foreignKey: 'userId' }); 第三,一个project和user也可以通过一个user作为一个project一部分通过一个angular色进行关联。 Project.belongsToMany(models.User, { as: 'Users', through: models.ProjectRoles, foreignKey: 'projectId' }); User.belongsToMany(models.Project, { as: 'Roles', through: models.ProjectRoles, foreignKey: 'userId' }); 我试图实现的是find所有的项目,并与他们一起返回相关的“喜欢”计数。 不过,我真的很难找出如何做到这一点。 我读过,我应该能够做到这样的事情: models.Project.findAll({ […]

如何防止Sequelize添加“Id”列名?

我发现当我用Sequelize进行查询时,“Id”被添加到列名的末尾,但我不知道如何指示Sequelize不这样做? 我已经为Sequelize创build了一个实体数据模型,如下所示: function initializeDataModel(sequelize) { var dataModel = { }; dataModel.Playlist = this.sequelize.define('playlist', { name: Sequelize.STRING, }); dataModel.PlaylistEntry = this.sequelize.define('playlist_entry', { playlist: { name: 'playlist', type: Sequelize.INTEGER, references: { // This is a reference to another model model: dataModel.Playlist, // This is the column name of the referenced model key: 'id' // This declares when […]

用于Sequelize审计跟踪的节点库

有没有一个适当的节点库启用Sequelize ORM(引擎盖下的Postgresql)审计表? 我发现NPM包sequelize-temporal , sequelize-paper-trail和audit.sequelize ,但是它们要么很老,不能提供一个简单的方法来迁移现有的数据库,或者根本不工作。 还是有另一种方便的方法来跟踪我应该知道的数据库更改?