gpt4 book ai didi

javascript - Sequelize.or 返回 Limit 1 而不是 or 结果

转载 作者:搜寻专家 更新时间:2023-10-31 23:51:59 25 4
gpt4 key购买 nike

我正在使用带有 Passportjs 的 SequelizeJS(MySql) 进行身份验证当我写

User.find(db.Sequelize.or({ 'username': username }, { 'email': req.body.email }) )
.then((user) => {console.log(user)}

User.find({$or:[({ 'username': username }, { 'email': req.body.email })]} )

生成

Executing (default): SELECT id, name, username, email, password, Picture, role, Description, joinedAt, Social, createdAt, updatedAt FROM Users AS User LIMIT 1;

我不明白发生了什么,我正在使用 or 并且它生成限制为 1 的查询!

我的用户模型

const bcrypt = require('bcrypt-node');
const db = require('../Config/db');

module.exports = function () {
let DataType = db.Sequelize;
let User = db.sequelize.define('User', {
name: { type: DataType.STRING, allowNull: false },
username: { type: DataType.STRING, unique: true, allowNull: false },
email: { type: DataType.STRING, unique: true, allowNull: false, validate: { isEmail: true } },
password: {
type: DataType.STRING, allowNull: false, set: function (pass) {
let newPassword = bcrypt.hashSync(pass);
this.setDataValue('password', newPassword);
}
},
Picture: { type: DataType.STRING, default: '#' },
role: { type: DataType.STRING, default: 'user',allowNull: false },
Description: { type: DataType.TEXT },
joinedAt: { type: DataType.DATE, defaultValue: DataType.NOW },
Social: { type: DataType.TEXT }
}, {
classMethods: {
associate: function (models) {
User.hasMany(models.Post);
}
}
}, {
instanceMethods: {
comparePassword: function (password) {
return bcrypt.compareSync(password, this.password);
}
}
});

return User;
}

最佳答案

Sequelize 中没有函数 Model.find(),因此看起来您可能正在调用 Model.findOne()它将 LIMIT 1 应用于您的查询。要查找所有结果,您需要使用 Model.findAll() .

你应该使用 query operator $or,但它需要位于具有 OR 值数组的 where 元素内。请参阅下面的示例。

User.findAll({
where: {
$or: [
username: username,
email: req.body.email,
],
}
})
.then(users => console.log(users));

关于javascript - Sequelize.or 返回 Limit 1 而不是 or 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41204152/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com