Tag: sequelize.js

如何validationSequelize交易,并使其看起来不错

经过几年的努力,我正在努力学习NodeJS,所以我正在build设一个小型银行网站作为testing。 我决定为我的ORM使用Sequelize,但是我喜欢用一种方式在人们之间传送金钱。 这是我第一次尝试: // myUsername – who to take the money from // sendUsername – who to send the money to // money – amount of money to be sent from `myUsername`->`sendUsername` // Transaction is created to keep a log of banking transactions for record-keeping. module.exports = (myUsername, sendUsername, money, done) => { // Create […]

在连接表中只创build了一列

默认情况下,sequelize将在连接表中创buildcreatedAt和updatedAt列以build立多对多的关系,但是我只想使用createdAt列,并在创build行时自动设置它。 自定义UserJob模型: const UserJob = sequelize.define('UserJob', { createdAt: DataTypes.DATE }, { timestamps: false }); UserJob.beforeCreate((userJob, options) => { console.log('before create'); userJob.createdAt = new Date(); }); return UserJob; 协会: User.belongsToMany(models.Job, {through: UserJob, foreignKey: 'user_id'}); Job.belongsToMany(models.User, {through: UserJob, foreignKey: 'job_id'}); 它不设置createdAt,我该怎么办?

Sequelize:如何将列乘以一个聚合函数

所以基本上我想要的是: select (table2.col1 * sum(table1.col1)) as myAggregate from table1 join table2 ON table2.id = table1.id 我已经得到了这么多,但不知道如何添加乘法: Table1Model.findAll({ attributes: [[Sequelize.fn('SUM', 'col1'), 'myAggregate']] include: [Table2Model] })

如何在nodejs中访问控制器中的常量variables

我已经在模型文件中定义了一个常量variables,在向表中插入数据时尝试访问这个常量variables,然后显示未定义的variables。 我正在使用ORM和nodejs的sequlaize。 我想为状态定义三个值,如Active = 1,Inactive = 2,Deleted = 3,还有其他的解决scheme来定义这个。 我正在使用续集ORM 4 +版本。 Model code is here var Sequalize = require('sequelize'); var sequalize = require('../../config/db_config'); const ACTIVE = '1'; const INACTIVE = '2'; const DELETED = '3'; const User = sequalize.define('user',{ user_id_pk : { type : Sequelize.INTEGER, allowNull : false, primaryKey : true, autoIncrement : true […]

Sequelize&Express模型和关联设置

背景 我正在使用Sequelize v4.2和Express v4.15.2,并尝试设置模型并将它们相互关联。 我一直在努力寻找任何工作v4.x序列化的例子,即使在查看这个Express / Sequelize教程以及v4迁移文档 。 问题 目前我正在尝试设置我的初始模型和关联时收到下面的错误。 /Users/james/Sites/awesome-app/server/node_modules/sequelize/lib/associations/mixin.js:80 if (!target.prototype || !(target.prototype instanceof this.sequelize.Model)) { TypeError: Cannot read property 'prototype' of undefined at Function.<anonymous> (/Users/james/Sites/awesome-app/server/node_modules/sequelize/lib/associations/mixin.js:80:16) 文件/代码 我的模型安装文件( index.js )看起来像… const fs = require('fs'); const path = require('path'); const Sequelize = require('sequelize'); const basename = path.basename(module.filename); const env = process.env.NODE_ENV || 'development'; const […]

在Sequelize中不起作用

我目前正在使用ExpressJS,PostgreSQL和Sequelize作为ORM的项目。 我开发了一个searchfunction,使查询按名称search项目: models.foo.findAll({ where: { $or: [ {name: {$ilike: keywords}}, {searchMatches: {$contains: [keywords]}} ] }, order: [['name', 'ASC']] }) 这工作正常,但如果名称包含特殊字符(如á,é,í,ó或ú),该查询将无法find它。 有没有办法使查询search名称与speacial字符在一个有意义的意义? 就像我search名字“马铃薯”的结果“马铃薯”,“大锅饭”和“我们是pótatóes”将出来,而不是“我们吃pátatos”(因为á!= o)

Sequelize – SQL Server – 按关联表sorting

我有3个表,如user , userProfile和userProfileImages 。 User与userPrfoile映射关系和userProfile与userProfile的映射关系一样多。 我需要在userProfileImages 通过查询来编写订单 ,我尝试了下面,但没有运气。 User.findById(uID, { include: [ model: sequelize.models.userProfile as: userProfile, include: [ { model: sequelize.models.userProfileImages, as: 'profileImages', } ], order: [[sequelize.models.userProfileImages.id, "desc"]] // order: [["id", "desc"]] –> Tried this way also no luck ] } 我得到的结果,但userProfilePicture表的结果不是desc。 请给解决scheme

Sequelize包含扩展外键的相关模型

假设我有一个外键的数据库结构: User ,fk: – > Photo ,fk – > Color 在Sequelize中,我想select所有用户,并获取他们的所有照片,以及每张照片的颜色。 例如:通过说: models.User.findAll({ include: [{model: models.Photo, as: 'mainPhoto'}] }) 但是我怎样才能得到每张照片的颜色呢?

在创build或更新数据时,使用100%CPU对Sequelize / mysql进行encryption

我需要更新或创build一个大型数组(1000几个对象)的MySQL表中的数据与sequ​​elize。 当我运行以下代码时,它几乎耗尽了我的数据库服务器(vserver 2gb ram / 2cpu)的所有cpufunction,并堵塞了我的应用程序几分钟,直到完成。 有没有更好的方法来做到这一点sequelize? 这可以在后台完成,或作为批量操作,所以它不会影响我的应用程序性能? data.forEach(function(item) { var query = { 'itemId': item.id, 'networkId': item.networkId }; db.model.findOne({ where: query }).then(function(storedItem) { try { if(!!storedItem) { storedItem.update(item); } else { db.model.create(item); } } catch(e) { console.log(e); } }); });

Message.Create不是一个函数会话cli

我已经在我的项目中安装了mysql sequelize然后我使用sequelize命令创build模型和迁移文件creadted消息模型。我也给了在config.json文件中的数据库凭据。现在我试图在我的数据库插入logging,但得到这个错误在这里是我的模型文件 我需要明确地build立数据库连接,或者它会自动从config.json文件中select证书来build立连接? 车型/ messages.js 'use strict'; module.exports = (sequelize, DataTypes) => { var Messages = sequelize.define('Messages', { room: DataTypes.STRING, nickname: DataTypes.STRING, message: DataTypes.STRING, receiver: DataTypes.STRING }, { classMethods: { associate: function(models) { // associations can be defined here } } }); return Messages; }; 这里是config.json文件config / config.json { "development": { "username": "root", "password": "asad", […]