Tag: sequelize.js

使用Sequelize.js自定义validation错误

可以从中自定义错误 Sequelize.ValidationError 模型: var PaymentType = sequelize.define('payment_type' , { id: { type: DataTypes.INTEGER(11), allowNull: false, primaryKey: true, autoIncrement: true, field: 'id' }, code: { type: DataTypes.STRING, allowNull: false, validate:{ notEmpty: true }, field: 'code' }, name: { type: DataTypes.STRING, allowNull: false, validate:{ notEmpty: true }, field: 'name' } }, { timestamps: true, paranoid: false, underscored: […]

Sequelize,MySQL,并在Heroku部署的超时退出不活动

我试图通过ClearDB使用Sequelize和MySQL数据库来部署nodejs SPA到Heroku。 该应用程序在本地工作,成功build立在Heroku上,并崩溃时,我从浏览器请求它与以下错误: 2017-05-15T01:57:11.830234+00:00 app[web.1]: Unhandled rejection SequelizeConnectionError: Quit inactivity timeout 2017-05-15T01:57:11.830243+00:00 app[web.1]: at Quit._callback (/app/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:136:30) 2017-05-15T01:57:11.830244+00:00 app[web.1]: at Quit.Sequence.end (/app/node_modules/mysql/lib/protocol/sequences/Sequence.js:86:24) 2017-05-15T01:57:11.830245+00:00 app[web.1]: at /app/node_modules/mysql/lib/protocol/Protocol.js:399:18 2017-05-15T01:57:11.830246+00:00 app[web.1]: at Array.forEach (native) 2017-05-15T01:57:11.830246+00:00 app[web.1]: at /app/node_modules/mysql/lib/protocol/Protocol.js:398:13 2017-05-15T01:57:11.830247+00:00 app[web.1]: at _combinedTickCallback (internal/process/next_tick.js:73:7) 2017-05-15T01:57:11.830248+00:00 app[web.1]: at process._tickCallback (internal/process/next_tick.js:104:9) 2017-05-15T01:57:24.016935+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path="/" host=widg.herokuapp.com request_id=cc5ac3b0-c003-46df-af32-e80f46d56a0b fwd="69.140.81.157" […]

如何在sequelize迁移中使用insert()?

我想在Sequelize迁移中使用insert()只创build一行。 我已经看到bulkInsert()的例子,但不想使用批量。 我们有这个函数来创build只有一行:插入(实例,表名,值,选项)但我不明白这是什么实例在这里参数? 我正在使用bulkInsert,因为它不要求实例参数。 如果你可以在下面写的代码中添加插入,那将是非常好的。 迁移库: https : //github.com/sequelize/sequelize/blob/master/lib/query-interface.js //Code for insertion using bulkInsert module.exports = { up: (queryInterface) => { queryInterface.describeTable('Platforms').then((attributes) => { return queryInterface.bulkInsert('Platforms', [{ id: 6, display_name: 'Booking.com', code: 'booking.com', }]); }); }, down: (queryInterface) => { return queryInterface.bulkDelete('Platforms', { id: 6, }); }, };

使用len和setter将Sequelize密码validation失败

我设置了如下的password字段: password: { type: Sequelize.STRING, validate: { len: { args: [7, 42], msg: "The password length should be between 7 and 42 characters." } } } 这工作。 但是,当我添加set处理程序时,要将密码转换为md5哈希,validation将始终失败(以上面设置的消息结束): password: { type: Sequelize.STRING, validate: { len: { args: [7, 42], msg: "The password length should be between 7 and 42 characters." } }, set (pass, key) […]

npm运行sequelize无法parsing

我正在尝试使用序列化迁移: npm install –save sequelize-cli 然后我把它添加到package.json中: "scripts": { "sequelize": "sequelize" }, 然后我尝试: npm run sequelize help:init 我得到这个错误: Unable to resolve sequelize package in C:\Projectx 该图书馆可以在该项目中find: node_modules/.bin/sequelize 更新 : 通过安装sequelize解决了它: npm install –save sequelize

如何获得一个模型的目标,这是一个由其他两个模型使用的模型?

说我有模型A belongsToMany模型B通过模型C,模型C belongsTo模型D.如果我有一个ID为A,有什么是最好的方式来获得模型D有关的模型A包括A和B? 我认为这是数据库ERdevise的一个普遍背景。 D是一个实体,它与实体A和实体B的关系C有关。 我们可以像这样获得C的正常属性。 A.findById(id,{include:[{model:B, through:{attributes:[…]}}]). 显然,我们不能像上面那样得到目标模型D. 我试过了 A.findById(id,{include:[{model:B, through:{model:C, include:[model:D]}}]) 它没有工作。

Sequelize设置相关的值

我有两个模型, 员工和办公室 。 每个员工属于一个办公室,办公室有很多员工。 我很难找出如何使用Sequelize更新员工办公室。 Employee模型如下: let Employee = sequelize.define("Employee", { id: { field: 'id', type: DataTypes.INTEGER, primaryKey: true, allowNull: false, autoIncrement: false }, name: { field: 'name', type: DataTypes.STRING(255), allowNull: false } }, { freezeTableName: true, timestamps: false, deletedAt: false }) Employee.associate = models => { Employee.belongsTo(models.Office, { foreignKey: 'id' }) } Office模型如下: let […]

有关在node.js和浏览器中共享模型代码的build议

我使用Sequelize作为我的服务器端ORM。 有没有推荐的方法来与我的客户端应用程序共享模型代码(特别是validation)? 请不要推荐需要我转移到NoSQL数据库的解决scheme。 目前这不是我的select。 虽然我真的把它作为一个ORM进行序列化,但如果它有用的话,我愿意转向其他的模型实现。

sequelize.js关系validation

想象一下,我有两个模型: var Movie = sequelize.define('movies', { /* model definition */ }) var Genre = sequelize.define('genres', { /* model definition */ }); Movie.hasMany(Genre); Genre.hasMany(Movie); 如果我想规定一部电影至less要有一个types,那我该怎么做呢? 我已经看到了明显的地方。 我最初的想法是build(),validate()和save(),但是查看源.validate()只适应模型定义中定义的字段。 例如 Genre.find({where:{'name':'horror}) .success(function (horrorGenre) { var movie = Movie.build({..}); movie.addGenre(horrorGenre); if (! movie.validate()) { // This doesn't consider related data movie.save(); } }); 所以我想我需要实现某种自定义validation机制,但我不完全确定从哪里开始。 注意我正在维护我自己的Sequelize分支,所以这更像是一个问题,我可能会如何修改Sequelize源代码来完成我想要的工作,而不是将它们拼凑在一起。

Sequelize.js:一对多关系急切加载自定义字段

我正在写节点的应用程序,expression,续集和我有一个小问题。 我正试图在关系的“一部分”上加载一个模型。 我得到这个SQL: Executing: SELECT `albaran`.*, `cliente`.`ClienteID` AS `cliente.ClienteID`, `cliente`.`NombreES` AS `cliente.NombreES` FROM `albaran` LEFT OUTER JOIN `cliente` AS `cliente` ON `albaran`.`AlbaranNo` = `cliente`.`ClienteID` WHERE `albaran`.`AlbaranNo`='2013100001'; 我需要它是: Executing: SELECT `albaran`.*, `cliente`.`ClienteID` AS `cliente.ClienteID`, `cliente`.`NombreES` AS `cliente.NombreES` FROM `albaran` LEFT OUTER JOIN `cliente` AS `cliente` ON `albaran`.`ClienteID` = `cliente`.`ClienteID` WHERE `albaran`.`AlbaranNo`='2013100001'; 所以我可以在视图中访问它(现在我得到一个空string): #{albaran.cliente.NombreES} 这是代码: albaran.js module.exports […]