Tag: sequelize.js

用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: { […]

在sequelize updateattributes方法中只能更新表中的一个属性?

我试过(sequelize模型)更新表中的值,但它会更新表中唯一的一个值。检查下面的例子 employee.updateAttributes({first_name : value.first_name}, {last_name : value.last_name}, {email : value.email}, {password : value.password}, {phone : value.phone} ).on('success',function(employee){ message.message = "Employee updated successfully"; message.employee = employee; message.successMessage = "Success"; callback(message); })

使用nodejs的sequelize更新多对多连接表

我有一个产品表和一个分类表。 一个产品可以有很多类别,一个类别可以有很多产品,因此我有一个ProductsCategories表来处理多对多的联接。 在下面的示例中,我试图将我的一个产品(ID为1)与3个不同的类别(ID为1,2和3)关联起来。 我知道在我的代码片断下面的东西是closures的,因为我得到一个丑陋的SQL错误消息,指示我试图插入一个对象到ProductsCategories连接表。 我不知道如何修复下面的代码片段,或者我甚至在这里的正确轨道上。 Sequelize文档对于这种事情相当稀less。 models.Product.find({ where: {id: 1} }).on('success', function(product) { models.Category.findAll({where: {id: [1,2,3]}}).on('success', function(category){ product.setCategories([category]); }); }); 我真的很感谢这里的一些帮助,谢谢。 另外,我正在使用Postgres,不知道是否重要。

无法使用Sequelize连接到MySQL

试图连接到我的服务器上的MySQL数据库时,我始终得到一个SequelizeConnectionRefusedError 。 login凭证是正确的,端口是开放的,一切似乎都很好(在开发环境中就像一个魅力一样)。 对不起,由于稀缺的背景信息,但我在这里傻眼了 – 我真的不知道可能是什么原因造成这个问题。 这是我的输出从mysql –version mysql Ver 14.14 Distrib 5.5.43, for debian-linux-gnu (x86_64) using readline 6.3 这是我用来初始化Sequelize的代码。 我想要它使用的表尚不存在,但我相当肯定,这个问题没有任何关系。 我已经尝试用root用户login,但没有骰子 – 我仍然得到相同的错误。 var sequelize = new Sequelize("database", username, password, { host: "localhost", dialect: "mysql", port: 3306, define: { paranoid: true } }); var Model = sequelize.define("Model", { md5: {type: Sequelize.STRING(128)}, ip: {type: Sequelize.STRING(256)}, […]

续集分页

在我的nodejs web应用程序上使用sequelize ,我想查询使用分页(按date)的post。 阅读sequelize文档 ,他们提供使用offset和limit 。 由于我想显示post从新到旧,我需要考虑它们创build的date。 例如,如果我将第一个查询限制为10页,并且在执行第二个查询之前创build了一个新的post,则偏移量为10的下一个查询将导致来自最后一个查询的重复post。 我应该如何实现分页,以便支持新条目?

节点js。 续订交易

我的数据库中有'money'字段的'Banks'表, 用户可以定期提款,但只有在银行存款> 0的情况下才能提款。 首先,我应该得到银行的实体,然后检查(银行。金额> amountToWithdraw),然后撤回这个金额。 想象一下当并发用户试图提取一些钱的情况。 在那个时候,我检查是否(bank.money> amountToWithdraw)其他用户可以执行提款操作,而实际银行金额在DB中会less一些。 如何将交易应用于寻找银行业务(如何locking银行实体)? models.sequelize.transaction(function (t) { return models.Banks.findOne({where: { money: { $gt: 0 } }).then(function(bank){ //in this moment other user finished the same operation // how to lock access for editing bank object by other users after //findOne method? bank.money -= amountToWithdraw; return bank.save({transaction: t}); }) })

如何将自定义函数添加到Node.JS中的sequelize.js?

例如,我有一个客户端模型。 我想添加新的function“sendEmail” 该function需要工作发送电子邮件给一个客户端,或一次发送电子邮件给许多客户端? 在哪里定义这些function?

节点JS Sequelize如何计算关联数据

我在节点JS中使用Sequelize作为ORM。 有两个taboes。 事件和评论。 我做这样的一个协会:事件有很多意见。 现在我想检索所有事件并计算每个事件的评论数量。 现在我这样做: db.Event.findAndCountAll({limit: limit,offset: offset, include: [ db.Comment], order: 'date DESC'}). 和下一个回报 JSON.stringify(result.rows). 如何只用一个查询来重新运行评论的数量。 请帮帮我。 提前谢谢你

无法在Sequelize.js上创build一对多的子实例

我正在使用sequize创build父项和子项实例,但会抛出以下错误。 Site.hasMany(Group,{as:'groups'}); Group.belongsTo(Site); //not working Site.create(siteData).then((site)=>{ site.addGroups(groupData).then(()=>{ //also tried addGroup next(); }); }); //this works Site.create(siteData).then((site)=>{ groupData.SiteId=site.id; Group.create(groupData).then(()=>{ next(); }); }); 错误: 未处理的拒绝types错误:val.replace不是Object.SqlString.escape(c:\ APi \ node_modules \ sequelize \ lib \ sql-string.js:61:15)上Object.QueryGenerator.escape(c:\ APi \ node_modules \ sequelize \ lib中\方言\抽象\查询generator.js:983:22)