使用 sequelize 在单个请求中更新一行并创建一个新行

编程入门 行业动态 更新时间:2024-10-08 04:32:14

使用 sequelize 在单个请求中更新一行并<a href=https://www.elefans.com/category/jswz/34/1771345.html style=创建一个新行"/>

使用 sequelize 在单个请求中更新一行并创建一个新行

在我的系统中有很多用户,每个用户可以有很多随机名称(由系统生成),但一次只能有一个。

export const RandomName = sequelize.define('random_name', {
    id: {type: DataTypes.UUID, primaryKey: true, defaultValue: DataTypes.UUIDV4},
    name: {type: DataTypes.STRING, allowNull: false},
    isActive: {type: DataTypes.BOOLEAN},
})

User.hasMany(RandomName)
RandomName.belongsTo(User)

我有一个 generateNewRandomName 解析器,它更新当前的 RandomName 实例 ({isActive: false}),并创建一个新的 ({isActive: true})

    async generateNewRandomName(userId){
        const currentRandomName = await RandomName.findOne({where: {isActive: true}})
        if (currentRandomName){
            await currentRandomName.update({isActive: false})
        }
        const newNameString = v4()
        const newRandomName = await RandomName.create({name: newNameString, isActive: true})
    }

问题是如果用户一次发送很多请求,许多相同的函数被调用并且他们试图丢弃相同的令牌,因为新的还没有被创建。

结果,许多新的代币被创造出来。我怎样才能防止这个问题?

回答如下:

更多推荐

使用 sequelize 在单个请求中更新一行并创建一个新行

本文发布于:2024-05-13 15:48:39,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1759931.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:创建一个   sequelize

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!