Ответ 1
Просто выполните свой запрос следующим образом:
User.find({
where: {email: req.body.user.email},
paranoid: false
})
Я хочу, чтобы ранее существующие пользователи в моем приложении, которые были удалены с помощью параноидального режима (так что теперь его поле deletedAt
НЕ null
), чтобы иметь возможность регистрироваться снова, используя тот же адрес электронной почты. Поэтому, когда API замечает создание пользователя с ранее используемым электронным письмом, он устанавливает в null
поле deletedAt
ранее существующего регистра вместо создания нового пользователя.
Обычно для поиска пользователя я буду делать,
User.find( { where: { email: req.body.user.email } })
Но после проверки созданного SQL-запроса он включает
Users.deletedAt IS NULL
Есть ли какой-либо особый способ нахождения при работе с параноидальными моделями?
Просто выполните свой запрос следующим образом:
User.find({
where: {email: req.body.user.email},
paranoid: false
})
В Sequelize встроена эта функция. В своих документах API вы можете включить флаг "параноидальный" в параметрах вашего поиска.
например.
User.find({where: {email: req.body.user.email}}, {paranoid: false}).success(models) {
//models contains both deleted and non-deleted users
}
Ссылка: http://docs.sequelizejs.com/en/latest/api/model/#findalloptions-promisearrayinstance
Вы можете использовать hook.
var uuid = require('node-uuid')
module.exports = function (sequelize, DataTypes) {
return sequelize.define("multi_route", {
email: {
type: DataTypes.STRING,
unique: false,
}
//other fields
}, {
timestamps: true,
paranoid: true,
hooks: {
beforeUpdate: function (multiFare, next) { // berforeUpdate will called after beforeDestroy
if (multiFare.email.indexOf("_____destroyed") > -1) { // check contains '_____destroyed' string
multiFare.email = multiFare.email + uuid.v1() // set unique value
}
next()
},
beforeDestroy: [function (multiFare, next) { // beforeDestroy will called before one instance destroyed
multiFare.email = multiFare.email + '_____destroyed' // flag this will destroy
next()
}]
}
})
}
Извините за мои плохие комментарии: (