Articles of sequelize.js

电子和sequelize错误:方言sqlite不支持

我试图在桌面应用程序中使用电子的 sequelize和sqlite,但通过npm start (运行node_modules/.bin/electron . )运行应用程序时,出现以下错误: 未捕获的错误:方言sqlite不支持。 (错误:请手动安装sqlite3包) 我用npm install –save sequelize sqlite安装了sequelize和sqlite npm install –save sequelize sqlite 。 当我通过node models.js直接运行模型文件时,一切工作正常: $ node models.js Executing (default): CREATE TABLE IF NOT EXISTS `Users` (`id` INTEGER PRIMARY KEY AUTOINCREMENT, `username` VARCHAR(255), `birthday` DATETIME, `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL); Executing (default): PRAGMA INDEX_LIST(`Users`) Executing (default): […]

续集,让协会返回的问题

我目前正在试验Sequelize,并有两个对象,一个人和一个Position ,当我得到一个人名单时,我想得到他们的位置。 楷模: var User = sequelize.define('user', { first_name: Sequelize.STRING, last_name: Sequelize.STRING }); var Position = sequelize.define('position', { name: Sequelize.STRING, affiliation: Sequelize.STRING }); Position.hasMany(User, { foreignKey : 'position_id' }); User.belongsTo(Position, { foreignKey : 'position_id'}); 我的查询: User.findAll({ fetchAssociations: true }, function(results) { //I've tried doing some work in here, but haven't found the correct procedure. }).on('success', […]

续集关联有一个,属于

问题是,我不能得到关系hasOne,它不急于加载状态types的对象。 所有查询都在现有的表上完成。 这里是客户表,最重要的是cst_state_type字段: module.exports = function(sequelize, DataTypes) { return sequelize.define('customer', { customer: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true, allowNull: true, validate: { isNumeric: true } }, first_name: { type: DataTypes.STRING(100), validate: { isAlphanumeric: true } }, last_name: DataTypes.STRING(100), identity_code: { type: DataTypes.STRING(20), allowNull: true, validate: { isNumeric: true } }, note: DataTypes.STRING(1000), birth_date: DataTypes.DATE, […]

从已定义的模型获取Sequelize.js的ENUM值

在Sequelize.js中定义它之后,我们如何获得模型的ENUM值? 例如,我们将模型定义为: sequelize.define('model', { states: { type: Sequelize.ENUM, values: ['active', 'pending', 'deleted'] } }) 我们如何从这个模型中获得预定义的['active', 'pending' ,'deleted']值?

在Sequelize中使用关联创build实例

使用Sequelize ,我创build了两个模型: User和Login 。 用户可以有多个login,但login必须只有一个用户,这意味着如果没有用户标识,则不能保存login。 我如何用一个用户协会一举.create一个login? 当前代码(不起作用) // Set up the models var User = sequelize.define('User', {}); var Login = sequelize.define('Login', {}); Login.belongsTo(User, { onDelete: 'cascade', foreignKey: { field: 'userId', allowNull: false, } }); // Create the instances var user = User.create().then(function() { // THIS IS WHERE I WOULD LIKE TO SET THE ASSOCIATION var […]

Nodjs sequalize如何获得最后插入ID

我正在使用Sequalize与nodejs在表中插入一行,现在我想要最后插入的ID,我想要一些像“mysql_insert_id()”,这里是我的代码: function registerAgent(agent_data,request_key,res,next) { models.agent.create({creator_id: agent_data.userid }, { fields: [ 'creator_id'] }).then(function(user) { console.log(user); }); };

如何注入与Server.inject模拟testinghapi

我想用lab来testinghapi路由,我正在使用mysql数据库。 使用Server.inject来testing路由的问题是,我不能模拟数据库,因为我没有调用包含处理函数的文件,所以如何注入处理程序中的模拟数据库?

在Node.js中处理回滚的MySQL事务

我正在处理一个两三天的问题,我真的希望你能帮助我。 这是一个基于node.js的API,使用MySQL sequelize 。 在某些API调用中,代码会启动locking某些表的SQL事务,如果我同时向API发送多个请求, LOCK_WAIT_TIMEOUT得到LOCK_WAIT_TIMEOUT错误。 var SQLProcess = function () { var self = this; var _arguments = arguments; return sequelize.transaction(function (transaction) { return doSomething({transaction: transactioin}); }) .catch(function (error) { if (error && error.original && error.original.code === 'ER_LOCK_WAIT_TIMEOUT') { return Promise.delay(Math.random() * 1000) .then(function () { return SQLProcess.apply(self, _arguments); }); } else { throw […]

使用关联来升级更新

在sequelize中可以创build一个行,所有它的关联一次去这样的: return Product.create({ title: 'Chair', User: { first_name: 'Mick', last_name: 'Broadstone' } }, { include: [ User ] }); 有更新的等价物吗? 我试过了 model.user.update(req.body.user, {where: {id: req.user.user_id}, include: [model.profile]}) 但它只是更新用户 这样做是为了创造作品 model.user.create(user, {transaction: t, include: [model.profile]})

合并重新出现的错误中的堆栈跟踪

我在这里重新抛出Sequelize承诺(蓝鸟)的错误。 首先,这是为了改变错误信息,但是当它出现时,这也产生了更多信息的堆栈跟踪。 这是类似的 sequelize.sync().catch(originalError => { const rethrownError = new Error(originalError.msg + ': ' + originalError.sql); throw rethrownError; }); 其中originalError.stack不包含导致错误的行,但是它包含重要的信息,它来源于Sequelize和MySQL驱动程序: SequelizeDatabaseError: ER_KEY_COLUMN_DOES_NOT_EXITS: Key column 'NonExisting' doesn't exist in table at Query.formatError (…\node_modules\sequelize\lib\dialects\mysql\query.js:175:14) at Query._callback (…\node_modules\sequelize\lib\dialects\mysql\query.js:49:21) at Query.Sequence.end (…\node_modules\mysql\lib\protocol\sequences\Sequence.js:85:24) at Query.ErrorPacket (…\node_modules\mysql\lib\protocol\sequences\Query.js:94:8) at Protocol._parsePacket (…\node_modules\mysql\lib\protocol\Protocol.js:280:23) at Parser.write (…\node_modules\mysql\lib\protocol\Parser.js:74:12) at Protocol.write (…\node_modules\mysql\lib\protocol\Protocol.js:39:16) at Socket.<anonymous> (…\node_modules\mysql\lib\Connection.js:109:28) at emitOne […]