Подтвердить что ты не робот

Как включить удаленные элементы при запросе таблицы "параноидальные" на странице secelize.js?

Я хочу, чтобы ранее существующие пользователи в моем приложении, которые были удалены с помощью параноидального режима (так что теперь его поле deletedAt НЕ null), чтобы иметь возможность регистрироваться снова, используя тот же адрес электронной почты. Поэтому, когда API замечает создание пользователя с ранее используемым электронным письмом, он устанавливает в null поле deletedAt ранее существующего регистра вместо создания нового пользователя.

Обычно для поиска пользователя я буду делать,

User.find( { where: { email: req.body.user.email } })

Но после проверки созданного SQL-запроса он включает

Users.deletedAt IS NULL

Есть ли какой-либо особый способ нахождения при работе с параноидальными моделями?

4b9b3361

Ответ 1

Просто выполните свой запрос следующим образом:

User.find({
  where: {email: req.body.user.email}, 
  paranoid: false
})

Ответ 2

В 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

Ответ 3

Вы можете использовать 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()
            }]
        }
    })
}

Извините за мои плохие комментарии: (