Articles of sequelize.js

Sequelize 4.3.2 n:m(多对多)关联:未处理的拒绝SequelizeEagerLoadingError

我有3个模型:用户,项目,UserProject: module.exports = function (sequelize, DataTypes) { var User = sequelize.define('User', { title: DataTypes.STRING, description: DataTypes.STRING }, { classMethods: { associate: function (models) { User.belongsToMany(models.Project, { through: 'UserProject', foreignKey: 'userId' }) } }, freezeTableName: true }) return User } module.exports = function (sequelize, DataTypes) { var Project = sequelize.define('Project', { title: DataTypes.STRING, description: DataTypes.STRING }, […]

如何扩展Sequelize模型

有没有一种方法来扩展(也许inheritance)模型来定义模型后添加钩子和字段? 所以像这样的东西: User = sequelize.define("user", { name: sequelize.String }); makeStateful(User); // adds state,updated,added fields and some hooks

使用sequelize和nodejs更新多个logging?

使用node.js(v0.10.12)和sequelize(2.0.0-dev9),我想更新现有的数据库表中的属性。 从另一个SO讨论中,我能够一次只更新一个logging。 我把这个调用封装在for循环中,但是在for循环中更新了相同的logging。 有人可以帮我修改这个代码来更新所有符合search要求的logging吗? 以下是我的代码: global.db.Task.find({ where: {"Cd": "match"} && {"Desc": null} }).on('success', function(task) { if (task) { // if the record exists in the db task.updateAttributes({ Desc: "New Upate" }).success(function() {}); } })

续集给出错误的表名

我有一个数据库。 我有一个“ user ”表 我正在尝试使用sequelize创build我的第一个REST api 然而,当它执行我的查询,我在控制台中得到以下内容: SELECT `id`, `username`, `password`, `name`, `organization_id`, `type_id`, `join_date` FROM `users` AS `user` WHERE `user`.`id` = '1'; 正如你所看到的,它试图使用一个名为users的表,但是这个表不存在。 这是我的一些代码: 请告诉我,如果你需要更多我不确定哪里出错了? :S var User = sequelize.define('user', { id: DataTypes.INTEGER, username: DataTypes.STRING, password: DataTypes.STRING, name: DataTypes.STRING, organization_id: DataTypes.INTEGER, type_id: DataTypes.INTEGER, join_date: DataTypes.STRING }, { instanceMethods: { retrieveAll: function(onSuccess, onError) { User.findAll({}, […]

如何正确处理nodejs中的asynchronous函数

我是nodejs的新手,我不能正确理解asynchronous函数是如何工作的。 我今天读了很多,但是我不能解决我的问题。 我使用Sequelize.js作为ORM和我的问题是当我embedded一个查询到其他查询的callback,然后我不能强迫它只有当两个查询结束时继续。 这是我现在的代码: io.on('connection', function (socket) { socket.on('join', function (data) { clients[clients.length] = new Client("Client " + clients.length, data.channel); console.log('Client connected Channel: ' + clients[clients.length-1].channel); var array = [] DB.Matches.findAll({attributes: ['matchId', 'teamAId', 'teamBId']}).then(function (result) { for (var i = result.length – 1; i >= 0; i–) { DB.Teams.findAll({where: { team_id: [result[i].teamAId,result[i].teamBId]}}).then(function (teams) { array.push({ […]

Sequelize – 无法读取未定义的属性'define'

我试图插入一个logging到MYSQL表使用sequelize。 安装了sequelize和mysql。 npm install –save sequelize npm install –save mysql 在app.js中定义它 var Sequelize = require('sequelize'); db.js var Sequelize = require('sequelize'); var sequelize = new Sequelize('randomdb', 'root', 'root', { host: 'localhost', dialect: 'mysql', port : 8889, pool: { max: 5, min: 0, idle: 10000 } }); exports.sequelize = sequelize; module.exports = Sequelize; 路线/ index.js var express […]

在Model.belongsTo中调用一些不是Sequelize.Model的实例

我试图在两个模型之间引用一个外键。 但我得到这个错误: throw new Error(this.name + '.' + Utils.lowercaseFirst(Type.toString()) + ' called with something that\'s not an instance of Sequelize.Model'); called with something that's not an instance of Sequelize.Model at Model.belongsTo 我怎样才能解决这个问题? 这是我的代码到目前为止。 这是我的模特/ mercadolibre.js "use strict"; var User = require('../models/index').User; module.exports = function(sequelize, DataTypes) { var MercadoLibre = sequelize.define("MercadoLibre", { id: { type: DataTypes.INTEGER, […]

如何sequelize作品?

我试图了解sequelize如何工作在一个简单的例子:用户可以有很多post和post只能有一个用户。 第一个问题,我不知道是否必须使用迁移或同步模型来创build我的数据库。 我的意思是,我必须在两者中使用相同的代码。 这是用户表的迁移: module.exports = { up: (queryInterface, Sequelize) => { return queryInterface.createTable('Users', { id: { allowNull: false, autoIncrement: true, primaryKey: true, type: Sequelize.INTEGER }, username: { allowNull: false, type: Sequelize.STRING, unique: true }, password: { allowNull: false, type: Sequelize.STRING }, email: { allowNull: false, type: Sequelize.STRING, unique: true }, createdAt: { allowNull: false, […]

用Sequelize ORM创build多个INNER JOIN

我使用Sequelize ORM与Node.js,我不能得到我的头在如何build立以下查询与它。 SELECT service.*, serviceCollection.*, client.companyName, client.idclient FROM service INNER JOIN serviceCollection ON service.serviceCollection_idserviceCollection = serviceCollection.idserviceCollection INNER JOIN client ON serviceCollection.client_idclient = client.idclient 这个查询工作正常,当我尝试在phpMyAdmin上运行良好。 复杂性在于Client模型与Service没有直接的关系,所以当试图这样做时: Service.findAll({include : [ServiceCollection, Client]}).then(function(service){ if(service) { res.status(200).json(service); } }); 我得到以下错误: Unhandled rejection Error: client is not associated to service! 我怎么能准备查询的方式,将获得客户端信息从外键在serviceCollection而不是原来的模型 – 服务 。 我不能只使用include在客户端上,因为它会给我错误,我需要以某种其他方式将它关联到此查询,我似乎无法find文档中的解决scheme。

Sequelize.js插入具有一对多关系的模型

我有两个具有一对多关系的sequelize模型。 我们称之为业主和财产。 假设它们是使用sails-hook-sequelize这样定义的(简化)。 //Owner.js module.exports = { options: { tableName: 'owner' }, attributes: { id: { type: Sequelize.BIGINT, allowNull: false, primaryKey: true, autoIncrement: true }, name: { type: Sequelize.STRING(255) }, associations: function () { Owner.hasMany(Property, { foreignKey: { name: 'owner_id' } }); } } //Property.js module.exports = { options: { tableName: 'property' }, attributes: { […]