Articles of sequelize.js

发送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 ,但是它们要么很老,不能提供一个简单的方法来迁移现有的数据库,或者根本不工作。 还是有另一种方便的方法来跟踪我应该知道的数据库更改?

在续集种子中findlogging

我一直在试图为我的项目写一些种子,但是我遇到了一些麻烦。 我与我的users和roles表有着many-to-many关系。 所以,当我播种数据库时,我需要添加一个正确的ID到我的连接表的logging。 为了做到这一点,我需要find用户通过email和angular色的name并得到ids ,这就是问题所在。 我无法在续集网站上find任何好的文档。 我正在使用sequelize-cli来播种和迁移东西。 我作为一个参数queryInterface ,但我找不到任何示例或提到什么事情可以实际上做。 只是一些简单的例子,让我通过迁移(以某种方式),我能在谷歌find。 我已经通过使用“脏伎俩”来解决这个问题了。 // user_seeds.js up: function (queryInterface, Sequelize) { return queryInterface.bulkInsert(table, [{ id: 1, name: 'John doe', email: 'john@doe.com', created_at, updated_at }], {}); // roles_seeds.js up: function (queryInterface, Sequelize) { return queryInterface.bulkInsert(table, [{ id: 1, name: 'admin', created_at, updated_at }, { id: 2, name: 'user', created_at, […]

Sequelize hasOne Relationship association方法不是函数吗?

我正在使用Node和Sequelize ORM的后端。 正在使用的数据库是PostgreSQL。 我之前在代码中使用了hasOne() ,并且它非常createAssociation() ,之前使用hasOne()关系的所有createAssociation() , getAssociation()方法hasOne()工作。 然而,由于某种原因,现在给我一个问题。 index.js const Connection = new Sequelize( 'postgres', 'postgres', null, { dialect: 'postgres', host: '192.168.99.100', port: '5432', } ); const ModelSeven = Connection.define('modelSeven', ModelSevenSchema), ModelFive = Connection.define('modelFive', ModelFiveSchema), ModelOne = Connection.define('modelOne', ModelOneSchema), ModelSix = Connection.define('modelSix', ModelSixSchema), ModelThree = Connection.define('modelThree', ModelThreeSchema), ModelFour = Connection.define('modelFour', ModelFourSchema), ModelOne.hasOne(ModelThree); // Defines […]

Sequelize – 级联删除3个表

我试图级联删除数据通过3关联的表中sequelize。 我创build的模型如下。 用户型号: var Sequelize = require('sequelize'); module.exports = function(sequelize, DataTypes) { var Users = sequelize.define('Users', { id: { type: Sequelize.INTEGER, allowNull: false, primaryKey: true, autoIncrement: true }, name: { type: DataTypes.STRING, allowNull: false }, createdAt: { type: DataTypes.DATE, defaultValue: DataTypes.NOW }, updatedAt: DataTypes.DATE }, { classMethods: { associate: function(models) { Users.belongsToMany(models.Books, { through: { […]

基于关系的节点js中的ACL

我试图在Node js中实现某种权限框架,使用sequelize作为ORM(与Postgres)。 经过几个小时的研究,我能find的与现有npm模块做的最接近的事情是使用acl和acl sequelize来支持我的堆栈。 问题是,它看起来像acl模块分配一个angular色,该angular色将获得一组权限到特定资源的所有实例 。 但是,我需要根据该用户的现有关系对实例进行权限许可。 作为一个例子,考虑一个简单论坛的权限系统。 它为每个angular色提供这些权限: // allow guests to view posts acl.allow("guest", "post", "view"); // allow registered users to view and create posts acl.allow("registered users", "post", ["view", "create"]); // allow administrators to perform any action on posts acl.allow("administrator", "post", "*"); 假设我也想为注册用户添加编辑他们自己post的function,并且用户与他们创build的所有post有关系。 有没有办法让这个模块做到这一点,或任何其他模块,可以在数据库/ ORM级别上支持这种行为? 如果没有,我必须实现一个自定义的,最好的方法来创build这样的东西。

通过中间模型加紧加载

我有3个模型: ModelA,ModelB和ModelC ModelA属于多个ModelB(n:m) ModelB属于多个ModelA(m:n) ModelB属于ModelC(n:1) ModelC有许多ModelB(1:n) 我需要获得ModelA的所有ModelC(通过ModelB) 我相信是这样的,但我不能得到它的工作,当一个through续集创build协会创造怪异foreignKeys和关于这个话题的续集文件是非常不完整的,我的味觉 ModelA.findOne({ where: …, include: [ { model: ModelC, through: … } ] }); 编辑:我改变了所有的实体模型A,B,C,因为这是一个关于Sequelize API的问题/问题; 不是关于数据库/模型devise