Tag: sequelize.js

Sequelize生成错误的查询? sequelize-auto-ts和sequelize

我正在使用Typescript,NodeJS和sequelize-auto-ts来生成模型。 我想要放置一个包含find查询的两个模型给了我错误的结果,而这又是由于错误的查询被解雇了。 这里有两个模型。 rewardcodes = <types.rewardcodesModel> sequelize.define<types.rewardcodeInstance, types.rewardcodePojo>('rewardcodes', { 'rewardid': { type: 'number', primaryKey: true, autoIncrement: true }, 'code':'string', 'amount':'string' }, { timestamps: false, classMethods: { getrewardcode:(rewardcode:types.rewardcodePojo) => { var where:{[key:string]:any} = {}; if (rewardcode['rewardid'] !== undefined) { where['rewardid'] = rewardcode['rewardid']} if (rewardcode['code'] !== undefined) { where['code'] = rewardcode['code']} if (rewardcode['amount'] !== undefined) { where['amount'] […]

SequelizeJS中的虚拟属性不起作用

我在SequelizeJS中有以下模式: var moment = require('moment'); module.exports = function(sequelize, DataTypes) { var Account = sequelize.define('Account', { suspended: { type: DataTypes.BOOLEAN, defaultValue: false } }, { getterMethods: { trialDaysLeft: function() { return 5; } }, tableName: 'accounts' }); return Account; }; 当我打电话给account.trialDaysLeft属性时,我想获得trialDaysLeft。 我正进入(状态 TypeError: Property 'trialDaysLeft' of object [object Object] is not a function 我错在哪里?

续集dynamic查询参数

我从我的前端MVC框架发送查询参数为req.query.p格式的req.query.p ,重点在于这可能是一个dynamic的键和值,例如: req.query.p = {nombre : 'juan'} 要么 req.query.p = {pais : 'chile'} 所以我需要钥匙和价值把它们放在where语句中,就像这样 exports.select = function(req, res){ console.log('=> GET | Obtener peliculas'.bold.get); db.Pelicula .findAndCountAll({ limit : req.query.limit, offset : req.query.offset, where : req.query.p ? [req.query.p.KEY + " = ?", req.query.p.VAL] : null }) .success(function(resp){ console.log(JSON.stringify(resp.rows, null, 4).bold.get); res.json({peliculas : resp.rows, meta : { total […]

丢失Amazon Ec2服务器上的数据库连接

在过去的几个月中,我遇到了一个问题,我在亚马逊EC2服务器上部署了我的应用程序,但至less每天10到30次,我得到这些错误。 1) Error: connect ETIMEDOUT at errnoException (net.js:904:11) at Object.afterConnect [as oncomplete] (net.js:895:19) 2) Error: getaddrinfo ENOTFOUND at errnoException (dns.js:37:11) at Object.onanswer [as oncomplete] (dns.js:124:16) ——————– at Handshake.Sequence (/var/app/current/node_modules/mysql/lib/protocol/sequences/Sequence.js:15:20) at new Handshake (/var/app/current/node_modules/mysql/lib/protocol/sequences/Handshake.js:9:12) at Protocol.handshake (/var/app/current/node_modules/mysql/lib/protocol/Protocol.js:42:50) at Connection.connect (/var/app/current/node_modules/mysql/lib/Connection.js:72:18) at module.exports.connect (/var/app/current/node_modules/sequelize/lib/dialects/mysql/connector-manager.js:276:16) at Object.pool.Pooling.Pool.create (/var/app/current/node_modules/sequelize/lib/dialects/mysql/connector-manager.js:125:19) at createResource (/var/app/current/node_modules/sequelize/node_modules/generic-pool/lib/generic-pool.js:258:13) at dispense (/var/app/current/node_modules/sequelize/node_modules/generic-pool/lib/generic-pool.js:250:9) at Object.me.acquire (/var/app/current/node_modules/sequelize/node_modules/generic-pool/lib/generic-pool.js:316:5) at […]

Sequelize – 两个ID的双连接表

如果我有一个“用户”表和一个“后续”表(“后续”有UserId和FollowedId,都指“用户”表上的用户) “followings”基本上是一个用户“跟随”另一个用户 如何设置关联,以便在使用Followings模型查询和包含用户模型时,它将包含两列的嵌套信息? 例: Users | id | name | email | etc | Followings | id | UserId | FollowedId | UserId和FollowedId都与“用户”表上的用户相关联。 我试过这个: User.hasMany(Following); Following.belongsTo(User, {foreignKey: 'FollowedId'}); Following.belongsTo(User, {foreignKey: 'UserId'}); 但是当我使用: Followings.find({ include: User }) 它只会在UserId上嵌套信息,而不是FollowedID用户。 如果这是令人困惑的问题,请提出问题,谢谢! 编辑:使用PostgreSQL

Sequelize js postgresql用户定义的types

Postgres的一个最好的function(就像我看到的那样)是用户定义的数据types,可以让我以更易读易维护的方式定义我的数据模型。 有谁知道/有一些build议如何使用它与SequelizeJs ORM ? 我可以使用关联,但不会是用户定义的types,它会将我拖回旧学校的子表,这是我想避免的。

仅在(mysql)表中将存储date部分重新组合

我的应用程序只想将date部分存储在一个表中。 在Sequelize中,只有一个数据types Sequelize.DATE可以使用。 在MySQL表上创buildDATETIME列。 我怎么能有一个数据库表中的列来存储date,没有时间。 部分? MySQL有单独的DATE和DATETIME数据types,但是找不到在Sequelize中说明的方法。 或者我们可以使用Date对象来运行查询时忽略时间部分? (我知道我们可以使用getters和setter属性,不知道在运行带有date字段条件的查询时它是否会工作。

如何在Sequelize中使用运算符?

var conditionalData = { id: { $Between: [11, 15] }, technician_id: technicianId }; var attributes = ['id', 'service_start_time', 'service_end_time']; userServiceAppointmentModel.findAll({ where: conditionalData, attributes: attributes }).complete(function (err, serviceAppointmentResponse) { if (err) { var response = constants.responseErrors.FETCHING_DATA; return callback(err, null); } else { if (serviceAppointmentResponse.length > 0) { var response = constants.responseErrors.NO_AVAILABLE_SLOTS_IN_YOUR_CALENDAR; return callback(response, null); } } […]

将数据库replace为postgreSQL后,Sequelize时间比较失败

我已经取代MySQL数据库,而不是PostgreSQL,现在我有问题,当我试图find用户通过: .find({ where: { resetPasswordToken: req.params.token, resetPasswordExpires: { gt: Date.now() } } }) .then(function(user){ if (!user) { req.flash('errors', { msg: 'Password reset token is invalid or has expired.' }); return res.redirect('/forgot'); } res.render('account/reset', { title: 'Password Reset' }); }) .catch(function(err){ return next(err); }); 此代码之前工作,我有消息: SequelizeDatabaseError: operator does not exist: timestamp with time zone > bigint […]

将多个表保存在多个表中

好吧,所以我有一个巨大的问题,我不知道如何解决。 我有我的标题以下设置: var Title = sequelize.define('title', { id: DataTypes.INTEGER, name: DataTypes.STRING, organization_id: DataTypes.INTEGER }, { freezeTableName: true, instanceMethods: { retrieveAll: function (onSuccess, onError) { Title.findAll({order: 'Rand'}, {raw: true}) .ok(onSuccess).error(onError); }, retrieveById: function (quote_id, onSuccess, onError) { Title.find({where: {id: quote_id}}, {raw: true}) .success(onSuccess).error(onError); }, add: function (selectedCompetence,onSuccess, onError) { var title = {id: null, name: this.dataValues.name, […]