如何将 AWS Cognito 子 UUID 添加到 Sequelize 表作为主键?

问题描述

我在尝试将我的 Cognito 用户子 UUID 添加到我的 Sequelize 表时遇到了很多问题。我已经看到 Sequelize 自动生成自己的 UUID 而不是自定义 UUID 的解决方案?我正在从客户端推送 AWS 子 UUID 作为 express 中的负载

模型文件

function User(sequelize) {
  const User = sequelize.define(
    "User",{
      id: {
        type: DataTypes.UUID,primaryKey: true,allowNull: false,},

客户端

      console.log('result: ',user);
      console.log('result: ',user.userSub,typeof user.userSub);
      console.log('uuid result: ',uuidParse(user.userSub),typeof uuidParse(user.userSub));

      let payload = {
        id: user.userSub,username: username,email: email,birthday: birthdate
      }

      const request = {
        url: `/api/user`,method: 'POST',payload,};

      query(request);

错误

"name":"SequelizeValidationError","errors":[{"message":"User.id cannot be null","type":"notNull Violation","path":"id","value":null,"origin":"CORE"

谢谢

解决方法

刚刚想通了,我好像忘记在模型的 createUser 方法中的参数中添加 id 了。一切正常

 User.createUser = async function ({ **id**,username,email,bio,birthday,gender }) {
    return await this.create({
      **id**,gender
    });
  };