Tag: sequelize.js

得到.findOrCreate()错误

我使用Sequelize作为ORM。 这是我的用户模型: ### User model ### User = exports.User = globals.sequelize.define "User", username: globals.Sequelize.STRING email: type: globals.Sequelize.STRING validate: isEmail: true hash: globals.Sequelize.STRING salt: globals.Sequelize.STRING(512) fname: globals.Sequelize.STRING lname: globals.Sequelize.STRING country: globals.Sequelize.STRING 我正在保存用户: globals.models.User.findOrCreate username: "johny" password: "pass" email: "johny93[###]example.com" .success (user, created)-> console.log user.values res.send 200 .error -> console.log err # how to catch this? res.send […]

Sequelize.js onDelete:'cascade'不会删除logging的续集

我有Product表与以下列[id, name, CategoryId]和Category表[id, name] 产品型号: – module.exports = function(sequelize, DataTypes) { var Product = sequelize.define('Product', { name: DataTypes.STRING }, { associate: function(models) { Product.belongsTo(models.Category); } }); return Product } 分types号: – module.exports = function(sequelize, DataTypes) { var Category = sequelize.define('Category', { name: { type: DataTypes.STRING, allowNull: false } }, { associate: function(models) { Category.hasMany(models.Product, { […]

如何在模型更改后创buildSequelize cli db迁移

我开始sequelize并在线上跟随他们的video教程 。 运行后 node_modules/.bin/sequelize model:create –name User –attributes username:string node_modules/.bin/sequelize model:create –name Task –attributes title:string 为创build用户和创build任务创build了迁移文件。 然后,我不得不添加到每个模型的关联如下: // user.js classMethods: { associate: function(models) { User.hasMany(models.Task); } } // task.js classMethods: { associate: function(models) { Task.belongsTo(models.User); } } 但是,已经创build了用于创build用户和任务的表的迁移文件。 我必须手动更新它们才能添加关系吗? “migration:create”命令创build迁移框架文件。 我是否需要手动填写框架文件,或者除了创build模型之外,是否还可以自动创build完整的迁移文件? PS我见过以下的stackoverflow问题: 如何自动生成与Sequelize模型的Sequelize CLI迁移?

是否将caching常见请求集中在一起

所以我的问题很简单 如果我将执行相同的查询每秒/分钟很多时间(如User.find(test_user_id)),它会发送请求数据库每次或它只是caching查询结果?

sequelize.js TIMESTAMP不是DATETIME

在我的node.js应用程序中,我有几个模型,我想定义TIMESTAMPtypes的列,包括默认的时间戳created_at和updated_at 。 根据sequelize.js的文档 ,只有一个DATE数据types。 它在MySQL中创buildDATETIME列。 例: var User = sequelize.define('User', { … // columns last_login: { type: DataTypes.DATE, allowNull: false }, … }, { // options timestamps: true }); 是否有可能生成TIMESTAMP列呢?

获取最后插入的ID Sequelize

我正在使用Sequelize,并试图在原始查询中获取最后插入的ID。 我的查询是 .query(Sequelize.Utils.format(["insert into MyTable (field1, field2) values (?,?)", val1, val2]) 查询完成,但成功事件的结果是null 。 有人可以帮忙吗? 谢谢。 伙计们, 经过一番研究和无数的尝试后,我明白了被调查对象是如何工作的。 请纠正我,如果我的回答是错误的。 被调用对象需要这种结构 {__factory:{autoIncrementField: 'parameterName'}, parameterName: '' } 在这种情况下,“parameterName”是将存储新ID的字段,sequelize查找__factory.autoIncrementField,以将其最后一次插入的id的值(其值(__factory.autoIncrementField的值))设置为属性。 所以,我的电话查询方法将是 .query(sequelize.Utils.format(tempInsert), {__factory:{autoIncrementField: 'parameterName'}, parameterName: '' }, {raw: true}) 这将导致这样的对象 { __factory: { autoIncrementField: 'parameterName' }, parameterName: newInserted_ID } 感谢所有,我希望这可以帮助一个人。

停止执行Express.js中的Sequelize承诺

我是新来的承诺的世界,我不知道我完全理解如何在某些情况下使用它们。 Sequelize最近添加了支持承诺,这使得我的代码更具可读性。 一个典型的情况是避免在无限callback中多次处理错误。 下面的代码总是返回204而当我无法find照片时,我希望返回404 。 有没有办法告诉Sequelize发送404后“停止”承诺链的执行? 请注意, res.send是asynchronous的,所以它不会停止执行。 // Find the original photo Photo.find(req.params.id).then(function (photo) { if (photo) { // Delete the photo in the db return photo.destroy(); } else { res.send(404); // HOW TO STOP PROMISE CHAIN HERE? } }).then(function () { res.send(204); }).catch(function (error) { res.send(500, error); }); 当然这个例子是微不足道的,可以很容易地用callback函数来写。 但在大多数情况下,代码可以变得更长。

beforeUpdate似乎没有被调用

我有一个简单的用户模型,如下所示: 'use strict'; let hashPassword = (user, options) => { if (!user.changed('password')) { return; } return require('bcrypt') .hash(user.getDataValue('password'), 10) .then(hash => user.setDataValue('password', hash)); }; module.exports = (sequelize, DataTypes) => { const User = sequelize.define('User', { username: {allowNull: false, type: DataTypes.STRING, unique: true}, email: {allowNull: false, type: DataTypes.STRING, unique: true}, password: {allowNull: false, type: DataTypes.STRING, unique: […]

如何在SailsJs中使用Sequelize

水线是一个很好的ORM,但我注意到有许多function还没有出现在水线上,但Sequelize已经有了。 所以我决定改用sequelize,但仍然使用Sails来处理其他的事情。 我有search教程如何切换到sequelize,但没有。 我怎样才能取代水线为航行Js的续集?

关联迁移

我的应用程序当前使用Sequelize sync()方法来创build数据库,我想将其更改为使用迁移系统。 我的一个模型与其他模型有belongsTo()关联,我不知道如何为这些关联创build初始迁移代码。 我是否必须使用SQL查询手动创build外键,还是有一些方法可用?