Tag: sequelize.js

续集NodeJS:是否支持这些function?

以下是关于sequelize( sequelize project site )支持的特性的一些问题,我想在决定是否使用它之前先澄清一下: 链接(效率):当链接多个查询时,这些请求是否被收集到数据库中(作为一批操作),还是每个都单独发送? 链接(成功/错误):链接多个查询时,何时发出成功事件,发生什么错误? 只有所有操作都成功了,“成功”才会发射出去吗? 如果发生错误,是否会回滚所有操作(即将链操作视为事务) 过滤关联:说一个Crowd对象有关系Crowd.hasMany(Person) 。 您可以通过执行crowd.getPersons()来获取所有关联的人,但是可以select其中的一个子集,比如crowd.getPersons({where: { age: 30 }}) ? 获取通过两个或多个步骤相关的关联对象:将Crowd对象表示为关系Crowd.hasMany(Person)和Person具有Person.hasMany(Pet)关系。 是否有可能通过执行诸如crowd.getPersons().getPets()类的东西来获得人群中的所有宠物,如果是这样,这个请求会作为多个请求发送到数据库,还是只有一个请求? “深”对象:我想定义一个人作为对象: sequelize.define('Person', { name: { first: <a string>, last: <a string> } }); 这是允许的吗? (请注意,名称不会是数据库表的列,但首先和最后一个将是) “计算”对象:是否可以添加一个字段到从对象的其他字段计算的对象? 例如: sequelize.define('Person', { name: { first: <a string>, last: <a string>, full: <name.first + ' ' + name.last> // <– […]

Sequelize不能创build表,但是当我在MySQL CLI中运行相同的工作

我正在使用sequelize并遇到一个奇怪的错误: Executing (default): CREATE TABLE IF NOT EXISTS `groups` (`id` INTEGER NOT NULL auto_increment , `groupname` VARCHAR(255), `groupkey` VARCHAR(255), `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB; Executing (default): CREATE TABLE IF NOT EXISTS `users` (`id` INTEGER NOT NULL auto_increment , `username` VARCHAR(255) UNIQUE, `password` VARCHAR(255), `salt` VARCHAR(255), `token` VARCHAR(255), `group_id` […]

Sequelize – 为DATE字段使用UNIX时间戳

有没有办法强制Sequelize使用UNIX Timestamp作为默认的时间格式createdAt / updatedAt时间戳和自定义的Sequelize.DATE字段types? 谢谢! PS我正在使用MySQL

使用关联来创build对象

我正在尝试保存与其关联的续集模型。 所有的协会都是一对一的。 用数据库中的关联检索模型工作得很好,但插入它们是另一回事,文档只是让我更加困惑。 这是我的插入方法: models .radcheck .create(user, { include: [{model: models.skraningar}, {model: models.radusergroup}, {model: models.radippool}] }) .then(success, error); 我已经看到了很多方法来做到这一点,无论是在文档和这里在计算器上,到目前为止,他们没有任何意义。 任何人都在意为我清理东西?

Sequelize查询正在给TypeError:udefined不是一个函数

我为我的节点应用程序使用express和sequelize。 在控制器文件上,我有以下内容: var models = require('../models'), Property = models.property, Sequelize = require('sequelize'); module.exports = function(req, res){ Sequelize.query("SELECT * FROM 'property'", { type:Sequelize.QueryTypes.SELECT}) .then(function(properties) { res.json(properties) }) } 我可以使用model.findAll罚款,但是当我尝试使用原始查询,我得到TypeError:undefined不是一个函数。 你能指出我在这个代码中做错了什么吗?

续集如何检查数据库中是否存在条目

我需要检查数据库中是否存在具有特定标识的条目,使用Node.js中的Sequelize function isIdUnique (id) { db.Profile.count({ where: { id: id } }) .then(count => { if (count != 0) { return false; } return true; }); } 我在一个if语句中调用这个函数,但是结果总是未定义的 if(isIdUnique(id)){…}

如何使用Sequelize和mySqlselect外键列的名称?

我正在使用sequelize在我的节点应用程序中为mySql数据库模式build模。 我的模型摘录如下所示:我有一个公司表和一个部门表。 一个公司可以有多个部门,一个部门只属于一个公司。 我build模如下: 公司表: module.exports = function(sequelize, DataTypes){ return Company = sequelize.define('Company', { companyId: { type: DataTypes.INTEGER, primaryKey: true, allowNull: false, autoIncrement: true, unique: true }, name: { type: DataTypes.STRING, allowNull: false } })} 部门表: var Company = require('./company'); module.exports = function(sequelize,DataTypes) { return Department = sequelize.define('Department', { departmentId: { type: DataTypes.INTEGER, primaryKey: true, […]

Sequelize,自定义setter,没有设置

不幸的是,模型属性设置者和获取者的文档有些不足,而且我无法让我的小二连奏工作。 var bcrypt = require('bcrypt'); module.exports = function( sequelize, DataTypes ) { var User = sequelize.define('User', { username: { type:DataTypes.STRING, unique: true, allowNull: false }, email: { type:DataTypes.STRING, allowNull: false, unique: true }, userlevel: { type:DataTypes.INTEGER, allowNull:false, defaultValue:0 }, password: { type:DataTypes.STRING, set: function(v) { var pw = this; var r; bcrypt.genSalt(10, function(err,salt) { bcrypt.hash(v, […]

续集findOne最新条目

我需要在表格中find最新的条目。 做这个的最好方式是什么? 该表具有Sequelize的默认createdAt字段。

Sequelize:批量更新

我正在使用Node.js,MySQL和Sequelize。 我想一次插入一些10k行到表中。 该表具有自定义的primaryKey字段,正在手动设置。 数据从网上下载并重叠。 我想有一个bulkCreate的版本,如果数据中的任何行都有唯一的键已经存在于表中,那么这个版本不会失败。 这样的事情是在MySQL中通过INSERT … ON DUPLICATE KEY UPDATE结构完成的。 我如何在Sequelize中做到这一点?