Articles of sequelize.js

在外部表中声明外部表

我有以下设置: var Module = sequelize.define('module', { id: DataTypes.INTEGER, name: DataTypes.STRING, description: DataTypes.STRING, category_id: DataTypes.STRING, module_type_id: DataTypes.STRING, gives_score: DataTypes.INTEGER, duration: DataTypes.STRING, price: DataTypes.STRING }, { freezeTableName: true,}) Organization_has_module Organization_has_module = sequelize.define('organization_has_module', { id: DataTypes.INTEGER, module_id: DataTypes.INTEGER, organization_id: DataTypes.INTEGER },{freezeTableName:true}); Module.hasMany(Organization_has_module, {foreignKey: 'module_id'}); 现在我试图findOrganization_has_module.organization_id = 1所有模块 但我不太清楚如何去做 我有以下代码: Module.findAll({include: [{ all: true }],where: {module_type_id: type_id}}) .success(onSuccess).error(onError);

如何在Sequelize中使用迁移?

我已经使用了EntityFramework , Waterline和Mongoose等ORMS。 我刚开始使用Sequelize 。 我创build了一个示例模型。 后来我想添加另一列到相应的模型对应的表。 当我编辑模型时,除非我放弃表格,否则新字段似乎并不反映在表格中。 我应该使用迁移吗? 阅读文档后我感到困惑。 有人能帮我吗?

从表中select最新的数据

我有一个名为item_histories的表设置,如下所示。 +——————————–+ | id itemId date price | +——————————–+ | 1 2 2015-01-10 310 | | 2 2 2015-01-11 318 | | 3 2 2015-01-12 326 | | 4 2 2015-01-13 333 | | 5 2 2015-01-14 335 | | 6 6 2015-01-10 121598 | | 7 6 2015-01-11 121598 | | 8 6 2015-01-12 […]

带有Sequelize的Node.js上的SQL Server 2008

我是新来的 ! 我试图做一个MS SQL Server2008与sequ​​elize查询,但我得到这个错误: 未处理的拒绝SequelizeDatabaseError:无效的列名称“id”。 在Request.userCallback(C:\ xampp \ htdocs \ Lavori)的Query.formatError(C:\ xampp \ htdocs \ Lavori \ Bit_Sense \ API_BS \ node_modules \ s equelize \ lib \ dialects \ mssql \ query.js:217:10) (C:\ xampp \ htdocs \ Lavori \ Bit_Sense \ API_BS \ node_modules \ teious \ lib \ request)中的\ Bit_Sense \ API_BS […]

Sequelize – 连接表从未创build

我一直在试图构build一个简单的“消息”应用程序。在给MongoDB一个尝试之后,我发现它最好用MySQL。 所以我不想用手写所有的表格/查询等,我想学习从头开始build立一个ORM,Ak Sequelize。 比方说,我有一个用户表: var User = sequelize.define('user', { email: { type: Sequelize.STRING, validate: { isEmail: true //msg: "Email is invalid" } } } 和一个消息表: var Message = sequelize.define('message', { message: {type: Sequelize.STRING}, sender: {type: Sequelize.STRING}, read: {type: Sequelize.BOOLEAN} } 每个用户可以有多个消息,每个消息可以有2个用户在对话中。 所以当我这样做: User.hasMany(Message); Message.belongsToMany(User, {through: 'Conversation', foreign_key: 'id'}); User.sync(); Message.sync(); 我期望一个名为Conversations …的交接表…持有user_id ..并且每个消息都有一个对话Conversation_id的引用,但显然它不是真的… 有谁知道正确的方法是什么? 谢谢!

在使用Google社交login和护照进行多次查询时执行查询

嗨,大家好,这是我的第一个问题,所以请耐心等待,我有一个问题,使用护照与sequ​​elize,问题发生后,我search数据库的logging,以检查用户是否已经存在,但当护照反序列化,Sequelize执行五个“select查询”,代码类似于我在scotch.io中find的代码,我只是附加了sequelize api: module.exports = function (passport) { // used to serialize the user for the session passport.serializeUser(function (user, done) { done(null, user.iduser); }); // used to deserialize the user passport.deserializeUser(function (id, done) { userModel.findById(id) .then(function (userVo) { done(null, userVo); }).catch(function(err) { if(err) throw err; }) }); passport.use(new GoogleStrategy({ clientID: 'XXXXX', clientSecret: 'XXXXXX', callbackURL: 'XXXXX' }, […]

如何使用Sequelize填充树

我想以一种有效和一致的方式填充一个目录。 (ID应始终相同)使用引用自己的模型来构build多树结构: var Category = sequelize.define("Category", { name: DataTypes.STRING }, { timestamps: false, classMethods: { associate: function(models) { Category.hasMany(models.Category, { as: 'Children', foreignKey: 'ParentId', useJunctionTable: false }); } } }); 数据示例: var categories = [ { name: "Menu A", Children: [ { name: "Sub 1"}, { name: "Sub 2", Children: [ { name: "Element 1" […]

如何将sequelize.sync选项强制设置为false?

我正在使用mysql数据库部署一个node.js应用程序,并在heroku上使用sequelize ORM。 当我部署时,sequelize重新创build数据库。 该应用程序无法正常工作,因为它需要数据库中的数据。 我相信sequelize.sync选项是罪魁祸首。 在我的本土发展环境中,我设定了一个手动假的力量。 但是在heroku上,sequelize正在被重新安装(package.json),我猜sync的默认是force:true。 我如何设置一个选项来阻止这种行为? 我通过了文档,并尝试了这一点: var sequelizeOptions = { host: "blah.blah.us-east-1.rds.amazonaws.com", dialect: 'mysql', port: 3306, sync: {force:false} }; 这被传递给sequelizeManager,依次处理DB的创build。 这种方法是行不通的。 任何帮助深表感谢。

在JavaScript中处理重复主键的模式

我正在使用npm sequelize库来存储MySQL。 主键是使用shortid库生成的任务ID。 什么是一个好的Javascript模式来处理重复的ID,在不太可能的情况下,shortid给我一个重复的键? 我想在重复键错误被捕获时返回false,并且有一个外部while循环来重新尝试重新创build任务(使用新生成的id)。 这是一个相当不好的解决scheme,那么有没有更好的方法来做到这一点? Task.create({ id: shortid.generate(), content: task.content, deadline: task.deadline }).catch(function(error) { console.log('repeated id'); return false; }).then(function() { console.log('yay ok'); return true; });

如何在不修改任何属性的情况下更新续集模型的字段“updated_at”

我使用PostgreSQL的sequelize 2.0.0。 我想知道是否有可能用一种方法更新模型的字段“updated_at”。 如果是的话,我该怎么做到呢? 例如,在其他框架,如Laravel,你有model.touch()自动更新模型的“updated_at”。 我已经试过使用model.save(),但是像sequelize doc所说的那样,调用这个没有属性的方法什么也不做。 另外,在文档中,我没有发现任何能够让我做我需要做的事情。 预先感谢您的帮助。 编辑:举一个我想要实现的例子,我已经有了我的模型的一个实例: Model.findById(1).then(function(myInstance){ […] myInstance.update() //here, I didn't change any attributes of myInstance and I would like to update the field udpated_at without doing another query. […] }):问题是:我怎样才能更新字段updated_at我以前的实例用一种方法?