Articles of sequelize.js

用空结尾OR或

我正在尝试使用Sequelize来生成(半)复杂的条件。 我想要生成的SQL是: SELECT * FROM Tasks WHERE completedDate IS NULL OR completedDate < CURRENT_TIMESTAMP; 所以我使用Sequelize命令: Task.findAll({ where: { completedDate: null }, $or: [ { completedDate: { $lt: new Date() } } ] }); 但是它返回0行。 难道我做错了什么?

复制外键列使用sequelize

我有一个节点项目使用sequelize,并有以下两个表 "use strict"; module.exports = function(sequelize, DataTypes) { var asset = sequelize.define("asset", { description : DataTypes.STRING, maker : DataTypes.STRING, model : DataTypes.STRING, serialNumber : DataTypes.STRING, barcode : DataTypes.STRING, account : DataTypes.INTEGER, usefulLife : DataTypes.INTEGER, downtimeCosts : DataTypes.FLOAT, purchasePrice : DataTypes.FLOAT }, { classMethods: { associate: function(models) { /*Un estado es de muchas categorias, y no […]

什么是“正确”的方式来实现一个“平坦”的结果使用序列化N:M协会

我有一个产品数据库,其中包含一些具有1-n类别的产品。 我的产品存储在products表中,类别在categories ,关联存储在productCategoryRel 。 现在我的愿望是,当我使用Product.find()获取一个产品时,接收一个包含categories属性的结果,其中包含categories表中的数据,没有任何其他嵌套属性。 目前这是我到目前为止: { "id": 1, "title": "Testproduct", "categories": [ { "id": 1, "title": "Testcategory", "productCategoryRel": { "category_id": 1, "product_id": 1 } } ] } 所以我的product包含一个很好的属性categories ,但categories也包含我想要避免的来自productCategoryRel表的所​​有数据。 我已经像地狱一样search,研究了文档和什么,我不确定是否甚至有可能实现我的目标。 这是我如何定义我的(testing)模型: let ProductCategoryRel = sequelize.define('productCategoryRel', {}); let Category = sequelize.define('category', { title: Sequelize.STRING }); let Product = sequelize.define('product', { title: Sequelize.STRING }, { defaultScope: […]

Sequelize获取请求数据的钩子?

我正在尝试在创build,更新,删除调用时为我的模型存储一些日志数据。 我想在请求中存储一些来自请求的数据以及一些用户数据(使用express.js)。 在钩子我有一些模块logging。 hooks: { afterCreate: function (order, options, done) { // How to get user data stored in express request. return app.log.set('event', [{message: 'created', data: order, userId: 1}, done]); } } … 该模块只是在一个表中logging。 然而,这是我遇到的userId部分。 我正在使用passport模块,它存储在请求,所以我怎么能得到一个用户对象(或任何外部对象)到模型钩子? 我想避免在控制器或其他任何地方执行它,因为可能有一些脚本或其他命令也可能input数据。

如何在不假定外键列名的情况下在sequelize中创build行时引用关联?

我有以下代码: #!/usr/bin/env node 'use strict'; var Sequelize = require('sequelize'); var sequelize = new Sequelize('sqlite:file.sqlite'); var User = sequelize.define('User', { email: Sequelize.STRING}); var Thing = sequelize.define('Thing', { name: Sequelize.STRING}); Thing.belongsTo(User); sequelize.sync({force: true}).then(function () { return User.create({email: 'asdf@example.org'}); }).then(function (user) { return Thing.create({ name: 'A thing', User: user }, { include: [User] }); }).then(function (thing) { return […]

Node.js module.exports不导出整个对象

我试图用express来使用sequelizejs 。 模型被组织成多个目录。 Users(directory) users.js profile.js … Articles article.js comments.js … 我已经修改了sequelize-express示例来遍历子目录,并使用promises导入模型。 sequelize_init.js 'use strict'; var fs = require('fs'), path = require('path'), _ = require('lodash'), config = require('./auth-config'), Sequelize = require('sequelize'), glob = require('glob'), Q = require('q'), db = {}; var sequelize; function getGlobbedModels() { var deferred = Q.defer(); glob('./config/sequelize/models/**/*.js', function(err, files) { if(err) deferred.reject('Glob […]

从多对多关系中selectsequelize

我试图从表中select引用另一个表。 我在桌子食物和桌子成份之间有多对多的关系。 食物模型: module.exports = function(sequelize, DataTypes) { return sequelize.define('food', { id: { type: DataTypes.INTEGER(10), allowNull: false, primaryKey: true, autoIncrement: true }, name_food: { type: DataTypes.STRING, allowNull: false } }, { tableName: 'food', freezeTableName: true }); }; Food_ingredients模型: module.exports = function(sequelize, DataTypes) { return sequelize.define('food_ingredients', { id: { type: DataTypes.INTEGER(10), allowNull: false, primaryKey: true, autoIncrement: […]

sequelize.js嵌套插入

我正在与sequelize.js工作,我有一个表(说User )与不同的string字段和与另一个表(称为Nationality )的多对多关系。 我试图在一个单一的指令中插入一个User的所有子元素和国籍的新行。 现在我正在这样做: models.Nation.create({codice:"IT",name:"Italia"}).then(function(italy){ models.User.create({username:"local_u",nation:italy}).then(function(){ }); }); 如果我查看数据库,在新创build的User行: the field NationId : the field未设置。 我知道我可以使用函数setNation的sequelize,但我不知道我是否可以在一个User.create内User.create 。

将关联创build对象关联不起作用

我想创build一个关联(天气)(插入与外键)的logging(位置)和每一个我尝试的方式我最终在外键字段weatherId NULL值。 我已经看到了帮助同时创build主实体和辅助实体的示例,但在这种情况下,我已经预加载了“天气”表,用户仅限于从select列表中select项目。 我发现了类似的问题,但没有人回答这个问题。 Sequelize [节点:4.2.2,CLI:2.2.1,ORM:2.0.0-rc1,mysql:^ 2.10.0] 我的模特是: 位置 'use strict'; module.exports = function(sequelize, DataTypes) { var Location = sequelize.define('Location', { id: DataTypes.INTEGER, locationName: DataTypes.STRING }, { classMethods: { associate: function(models) { Location.hasMany(models.Rig); Location.belongsTo(models.Weather); } }, freezeTableName: true, tableName: 'Location', timestamps: true }); return Location; }; MySQL描述位置 mysql> desc Location; +————–+————–+——+—–+———+—————-+ | Field | Type […]

批量postgres插入时间戳具有null通过sequalize设置的约束

我用我的节点应用程序使用Postgres和Sequelize。 我已经build立了模型,并允许Sequalize生成表格。 我现在想要使用这样的东西来移动数据。 insert into archive (id,title) select id, title from old_archives; 但是,由于Sequelize使用createdAt和updatedAt列,我得到空错误。 有没有解决的办法? 错误是 错误:“createdAt”列中的空值违反了非空约束。细节:失败的行包含(2,null,Dewerstone Rocks,null,null,null,null,null,null,null)。