Tag: sequelize.js

sequelize.js查询连接两个表与连接表上的where子句

我正在尝试使用sequelizejs从博客表中获取最新的博客文章,其中包括所有已批准的相应注释(来自单独的注释表)。 评论数据库有一个字段“blog_id”,它具有相应的博客ID。 如果我这样做: models.blogs.hasMany(models.comments, {foreignKey:'blog_id'}) models.comments.belongsTo(models.blogs, {foreignKey:'blog_id'}) models.blogs.findAll({where:{id:id},order:"id DESC", limit:1, include: [{model: models.comments, where:{approved:true}}]}).then(function(blogs){ res.json(blog:blogs[0]) }); 结果是最近的博客文章有一个已被批准的评论,而不是最近的博客文章和任何已被批准的评论。 我的工作是有两个查询: models.blogs.findAll({order:[["id","DESC"]],limit:1}).then(function(blogs){ var blog = blogs[0]; models.comments.findAll({where:{"blog_id":blog.id,"approved": true}}).then(function(comments){ res.json({ blog:blog, comments:comments }) }) }); 这是很好,function,但不优雅。 只是想知道什么是一个查询解决scheme。

与MariaDB一起发生错误

我正在尝试为我的MariaDB设置为ORM的sequelize 。 这是我的设置: var sequelize = require('sequelize'); var db= new sequelize('dbname', 'user', 'pass', { dialect: 'mariadb' }); 当我运行我的应用程序时,出现以下错误: /my/path/to/node_modules/sequelize/lib/dialects/mysql/connection-manager.js:23 throw new Error('Please install mysql package manually'); ^ Error: Please install mysql package manually 为什么sequelize尝试连接到mysql而不是mariadb在dialect指令中指定? 我错过了什么吗?

Sequelize TypeError关联不是一个函数

我创build了一个一对多的关系,并在将关联模型传递给我的数据库对象时遇到了一个奇怪的错误。 我不明白错误的来源,因为方法跟在文档之后。 我是否需要在目标模型中编写参考? 错误: db.DiscoverySource.associate(db); ^ TypeError: db.DiscoverySource.associate is not a function at Object.<anonymous> (/Users/user/Desktop/Projects/node/app/app/models/db-index.js:33:20) 源模型(一)organization.js: module.exports = function(sequelize, DataTypes) { var Organization = sequelize.define('organization', { organizationId: { type: DataTypes.INTEGER, field: 'organization_id', autoIncrement: true, primaryKey: true }, organizationName: { type: DataTypes.STRING, field: 'organization_name' }, admin: DataTypes.STRING },{ freezeTableName: true, classMethods: { associate: function(db) { Organization.belongsToMany(db.User, […]

节点js – Bcrypt – 比较方法为正确的input密码返回false

我已经在这里经历了各种类似的问题,我试了一下,但仍然是,结果总是“错误的密码”。 我正在使用bcrypt for nodejs,而我的密码哈希存储在Postgresql数据库中。 hash和compare方法如下: generateHash : function(password, callBack){ bcrypt.genSalt(8, function(err, salt) { bcrypt.hash(password, salt, callBack); }); } validPassword : function(password, callBack){ bcrypt.compare(password, this.password, callBack); } 我在下面这段代码中使用了这些函数: //Generating hashing and DB storing User.generateHash(password, function(err, hash) { // if there is no user with that email // create the user var newUser = User.build({ email: email, […]

未处理的拒绝SequelizeDatabaseError

我正在使用Sequelize,我试图插入一行到我的用户列。 但是,我不断收到以下错误: Unhandled rejection SequelizeDatabaseError: Invalid object name 'User'. 我正在连接到MSSQL服务器。 我知道我有正确的基本连接,因为我可以通过sequelize.query运行sequelize的普通查询而没有问题。 我的怀疑是我没有正确地指定架构或数据库。 我的模特定义: var user = sequelize.define("User", { ID: { type: Sequelize.INTEGER, unique: true, autoIncrement: true }, FirstName: { type: Sequelize.STRING }, LastName: { type: Sequelize.STRING }, CreateDate: { type: Sequelize.DATE }, UpdateDate: { type: Sequelize.DATE } },{ tableName: 'User', timestamps: false, freezeTableName: true }); […]

续集关联问题

我在查询中有一个问题,当我们通过查找所有的(包含段)条件时。 我的代码是 db.Doctor.findAll({ attributes : ['id','firstName','lastName', 'profilePicture','education','experience', 'fees','gender','mobile','email'], include: [ { model : db.Category, attributes : ['title']}, { model : db.Area, attributes : ['name']}, { model : db.City, attributes : ['name']}, { model : db.State, attributes : ['name']}, { model : db.Country, attributes : ['name']}, { model : db.DoctorClinicPicture, attributes : ['imagePath']}, { model : […]

从sequelize查询中返回一个值

我是新来的续集。 我使用mysql作为我的数据库。 我有一个sequelize查询,从数据库中find电子邮件ID。 通过使用这个查询的结果,我得到了该行的ID。 现在我需要返回这个值。 有人可以帮助我如何做到这一点。 这是我的代码。 var userId = getUserId(email_address); function getUserId(email_address) { models.users.findOne({ where: { email: email_address } }).then(function(result) { if (result) { var applicantId = result.id; return applicantId; // This is what I need to do } else { console.log("Could not find Email"); } }); } 在这里,我需要将variablesapplicantId返回给调用函数。

如何将查询逻辑添加到基于graphql-sequelize的安装?

这是一个简单的情况 我想查询GraphQL,并在今年的200天之内取得所有在读学校的学生。 我有一个学生sequelize模型,一个匹配的graphql对象,学生查询接受天int作为参数{学生(天:200)} 我明显想要做的就是实施逻辑“让所有学生在school_visits counter超过200”作为一个例子… 我使用graphql-sequelize在sequelize和GraphQL之间进行粘合。 一个简单的示例查询定义如下所示: students: { type: new GraphQLList(Student), args:{ id : {type:GraphQLInt}, days: {type:GraphQLInt} }, resolve: resolver(models.Student) } 你可以注意到,这个结构不允许我插入一些逻辑到查询中…如果你有任何使用GraphQl和Sequelize的经验 – 这是一个非常普遍的情况…我会很感激任何帮助解决它。 干杯 半掩

Sequelize,使用空白值validation字段长度

我使用快递作为ORM使用Sequelize 。 在Sequelize Model中 ,它们是接受空值的字段。 我想validation这个字段,通过定义len的input的长度,如果提供任何值。 码: field: { type: DataTypes.TEXT, allowNull: true, validate: { len: { args: [50, 200], msg: 'Please provide field within 50 to 200 characters.' } } } 但是,当字段为空时,Sequelize会抛出错误。 那么,我如何允许空值,只有在提供值时才进行validation。

创build关联的对象?

我试图掌握如何使用关联的对象。 我有两个对象 UserAttributes var sequelize = require('../database.js').sequelize, Sequelize = require('../database.js').Sequelize, User = sequelize.models.user, UserAttribute = sequelize.define('userAttributes', { name: Sequelize.STRING, value: Sequelize.STRING, }); UserAttribute.belongsTo(User); module.exports = UserAttribute; 用户 User = sequelize.define('user', {},{ classMethods: { createRider: function(params) { var values = [], userAttributes = sequelize.models.userAttributes, user = User.build(), name = userAttributes.build({name: 'name', value: 'params.name'}), fbprofile = userAttributes.build({name: […]