gpt4 book ai didi

node.js - Sequelize 销毁函数是如何工作的?

转载 作者:行者123 更新时间:2023-12-03 22:34:35 24 4
gpt4 key购买 nike

我一直在尝试使用 Sequelize ORM 删除 MySql 数据库中的用户,但它没有删除。

  • 没有偏执,这是查询生成:
  • UPDATE `Users` SET `active`=?,`updatedAt`=? WHERE `id` = ?
  • 偏执设置为 true,这是查询生成:
  •  UPDATE `Users` SET `active`=?,`updatedAt`=? WHERE (`deletedAt` IS NULL AND `id` = ?)
    在互联网上挖掘我发现查询应该采用这种形式 UPDATE "posts" SET "deletedAt"=[timestamp] WHERE "deletedAt" IS NULL AND "id" = 1 accounting to this Documentation
    这是我的模型:
    'use strict';
    const sequelizePaginate = require('sequelize-paginate')
    const bcrypt = require('bcrypt')
    module.exports = (sequelize, DataTypes) => {
    const User = sequelize.define('User', {
    photo: DataTypes.STRING,
    firstName: DataTypes.STRING,
    lastName: DataTypes.STRING,
    email: DataTypes.STRING,
    phone: DataTypes.STRING,
    password: DataTypes.STRING,
    role: DataTypes.STRING,
    verifyEmailAt: DataTypes.DATE,
    referralCode: DataTypes.STRING,
    active: DataTypes.BOOLEAN,
    referrer: DataTypes.STRING,
    rememberToken: DataTypes.STRING

    }, { instanceMethods: {
    comparePasswords: (password, prevPassword,callback) => {
    bcrypt.compare(password, prevPassword, (error, isMatch) => {
    if(error) {
    return callback(error);
    }

    return callback(null, isMatch);
    });
    }
    },
    hooks: {
    beforeValidate: (user) => {
    if(user.changed('password')) {
    return bcrypt.hash(user.password, 10).then(function(password) {
    user.password = password;
    });
    }
    }
    }});
    User.associate = (models) => {
    // associations can be defined here
    models.User.hasMany(models.Booking)
    models.User.hasMany(models.DriversLocation)
    models.User.hasMany(models.DriverReview)
    models.User.hasMany(models.Payment)
    };
    sequelizePaginate.paginate(User)
    return User;
    };
    还有我的查询片段:
    const { validationResult } = require('express-validator')
    const models = require('../models')

    deleteAdmin: (req, res) => {
    const result = validationResult(req);
    if (!result.isEmpty()) {
    return res.status(422).json({ success: false, message: 'input validation failure',
    code: 422, properties:{ userId : req.params.userId}, error: result.array() });

    }
    models.User.destroy({
    where: {
    id: req.params.userId
    }
    })
    .then((data) => {
    return res.status(200).json({ success: true, message: "success",
    code: 200, properties:{params: {userId: req.params.userId }},
    data: {content: data}});
    }).catch((error) => {
    return res.status(520).json({ success: false, message: "unknown error",
    code: 520, properties:{params: {userId: req.params.userId }},
    data: { error: error} });
    })
    }
    这里有什么地方做错了吗?
    提前感谢您的帮助

    最佳答案

    destroy 的使用对我来说似乎很好。请验证您的 User 模型导入和 req params 值。
    此外,模式定义中没有定义 id 字段。 id 如何保存在数据库记录中?

    关于node.js - Sequelize 销毁函数是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62643899/

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