Tag: sequelize.js

捍卫一个非幂等后期操作,以防止在Node.js中快速调用?

简单的问题:假设一个非幂等后期操作,你如何捍卫你的发布请求处理程序在多次调用node.js之前,他们可以响应,从而导致数据损坏? 具体案例:我有一个匹配的API,大约需要2-3秒才能返回(由于不得不通过一个大的用户库)。 有一些操作,用户可以简单地在同一秒内调用这个操作(这是一个错误,但不在我的控制之下,因此回答这个部分并不构成对根问题的回答)。 在这些条件下,为用户select了多个匹配,这是不可取的。 所有这些快速请求都会有相同的最终结果。 具体约束: node.js / express / sequelize。 如果我们添加一个队列,每个用户的请求将会在所有其他用户的请求之上,这可能在交通繁忙时产生严重的影响。

Sequelize v4 | 实例方法不起作用

我一直在尝试更新我的代码,以适应Sequelize的最新升级。 我在用着 续集:4.2.0 节点:7.10.0 NPM:5.0.3 问题 我似乎无法正确设置用户模型。 我已经实现了一些似乎没有工作的实例方法。 该类不能正确实例化。 user.js的 module.exports = (sequelize, DataTypes) => { var User = sequelize.define('user', { attributes …. }, { hooks: { afterCreate(user, options) { user.testFunction(); } } }); // Instance methods User.prototype.testFunction = () => { this.firstName = "John"; } // Class methods User.anotherTestFunction = () => { User.findOne().then(() […]

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, […]