Articles of sequelize.js

在Sequelize中将varchar列转换为date

我需要执行一个查询模型,具有保存字符不同的字段date时间这里是我的查询 const _from = new Date(from).getTime(); Model.findAll({where: Sequelize.where(Sequelize.fn('datetime', Sequelize.col('start')), '>=', _from)}) 与上面的查询这是响应: function datetime(character varying) does not exist 我也尝试以下内容: const _from = new Date(from); Model.findAll({where: Sequelize.where(Sequelize.fn('date', Sequelize.col('start')), '>=', from)}) 和上面的查询这是响应: date/time field value out of range: 1495828800000 这是表格中列的截图,我在Nodejs中使用postgress和Sequelize:

获取Sequelize Promise的内容而不执行它

我知道这可能是一个奇怪的问题,从现在开始我很抱歉。 让我们来像我这样一个容易的东西。 let query = User.findAll({where: {name: 'something'}}) 有没有一种方法可以让我访问query的内容。 而内容的意思是使用User.findAll生成的事实,我不关心User.findAll .then()的结果。

未处理的拒绝时间错误:资源请求超时

我得到这个错误在我的节点程序与sequ​​elize。 unhandled rejection timeouterror: resourcerequest timed out 在互联网上search后,我意识到它做的游泳池设置。 我在sequelize中有以下的池设置。 pool: { max: 5, min: 0, idle: 10000, acquire: 40000 } 任何帮助表示赞赏!

续集:至less需要一个关联

我有一个大致如下的关系: Parent: [id, name] Children1: [id, parent_id, name] Children2: [id, parent_id, name] Children3: [id, parent_id, name] Children4: [id, parent_id, name] Parent .hasMany -> Children1 .hasMany -> Children2 .hasMany -> Children3 .hasMany -> Children4 所以,如果我这样做: Parent->findOne({ include: [{model: Children1}, {model: Children2}] }) 只有带有children1和children2的父母(即Inner join)。 如果我做: Parent->findOne({ include: [ {model: Children1, required: false}, {model: Children2, required: false} […]

Sequelize:批量创build返回对象

我需要找回所有使用bulkCreate命令保存的对象。 我相信的是: User.bulkCreate(values, {returning: true}) 要么 User.bulkCreate(values, { individualHooks: true }) 哪一个适合使用,我在哪里放置这条线? 我的模型看起来像这样: var User = sequelize.define("Users", { status: { type: DataTypes.DataTypes.INTEGER, allowNull: true, defaultValue: 1 }, id: { type: DataTypes.DataTypes.INTEGER, allowNull: false, } }, { tableName: 'Users', classMethods: { associate: function (models) { User.belongsTo(models.Group, { foreignKey: { name: 'user_id', allowedNull: false, } }) } […]

用Postgrestestingasynchronous错误

我一直在用Postgres数据库编写Sequelize的unit testing。 为了testing,我正在使用Jest。 现在,我可以得到这个代码工作: test('email field only takes valid emails', () => { expect.assertions(2); let user = Users.build({ email: 'notAProperEmail', password: 'abc123' }); return user.validate().catch(err => { expect(err).toHaveProperty('errors'); expect(err.errors[0].message).toEqual('Validation isEmail on email failed'); }); }) 但由于某种原因,这会抛出错误“SequelizeDatabaseError:关系”用户“不存在”。 此外,预期的方法也永远不会被击中,因为我得到了预期的断言错误:“期望的一个断言被调用,但接收到零断言调用”。 describe('Password is encrypted', () => { beforeAll(() => { Users.create({ email: 'test1@gmail.com', password: 'testPassword123' }) }); test('password is […]

如何使用Sequelize(Node.js)上的联接进行批量更新

我有2个模型(亲子):用Sequelize定义的项目和cart_items。 关系: db.items.hasMany(db.cart_items, { foreignKey: 'itemId' }); db.cart_items.belongsTo(db.items, { foreignKey: 'itemId' }); 项目有价格fiels,cart_items有itemPrice字段,我需要更新item.price字段。 我需要使用父模型的数据批量更新子模型。 Sequelize有可能吗? 像这样的东西: db.cart_items.update( // values { itemPrice: db.items.price }, // Related parent item model = 0 // options { where: this.getCartItemsQueryObj(userId) } // This is ok ); 我可以用原始的mysql查询来做到这一点: return db.sequelize.query(` UPDATE cart_items ci JOIN items i ON ci.itemId = i.id SET […]

Sequelize – 用不是Sequelize.Model的子类的东西调用

我正在应用程序,但我有这个问题使用Node.js和Sequelize Postgresql: throw new Error(this.name + '.' + Utils.lowercaseFirst(Type.toString()) + ' called with something that\'s not a subclass of Sequelize.Model'); ^ Error: Expense.class BelongsTo extends Association { constructor(source, target, options) { super(source, target, options); <….LOT OF CODE FROM SEQUELIZE ….> if ((fieldsOrOptions || {}).transaction instanceof Transaction) { options.transaction = fieldsOrOptions.transaction; } options.logging = (fieldsOrOptions || […]

嵌套的预先加载sequelize(belongsTo和belongsToMany在同一个查询中)

在具有Express(4.15.2),Sequelize(3.30.0)和Mysql的NodeJS服务器(8.6.0)上,我正面临以下“简单”用例:(不要关注表名;) )我定义了这个模型: Child.belongsTo(儿子)Child.belongsToMany(父母) tableName: 'Child', classMethods: { associate: function(models) { this.belongsToMany(models.Parent, { as :{ singular: 'child', plural: 'children' }, through: 'Parent_Child'} ); this.belongsTo(models.Son, {foreignKey : 'fkSon', as :'son' }); } 我想要查询所有相关的模型到一个相同的查询。 我的模型定义工作正常。 我可以得到父母相关的儿童和儿子相关的,但不是两个。 这里查询我尝试运行不幸(由sequelize doc启发http://docs.sequelizejs.com/manual/tutorial/models-usage.html#nested-eager-loading models.Child.findAll({ include : [{model : models.Son, as:'son', include : [{model : models.Parent, as : 'children', through: 'Parent_Child' , require : […]

我可以将字段作为Sequelize js上的嵌套对象吗?

我在sequelize.js中有以下查询: getBookingById: (req, res) => { models.booking.findAll({ where: { id: { $in: [1, 2, 3] }, }, include: [{ model: models.cust, attributes: ['name', 'id'], }], attributes: [['id', 'bookingId'], 'propertyKey', 'propertyId'] }) .then((result) => { if (!result) return res.status(204); return res.status(200).json(result); }).catch(err => res.status(500); }; 我的回答如下: [{ "bookingId": 1, "propertyKey": "ABC", "propertyId": "123", "cust": { "name": […]