无效的有效错误,使用节点插入后DB并续集



我正在使用node sequelize库将数据插入Postgress db

这是我的用户模型。TS文件

export class User extends Sequelize.Model {
  public id!: number;
  public name: string;
  public email: string;
  public googleId: string;
  public password: string;
  // public preferredName!: string | null; // for nullable fields
  // timestamps!
  public readonly createdAt!: Date;
  public readonly updatedAt!: Date;
  async comparePassword(candidatePassword: string, callback: Function) {
    try {
      const isMatch = await bcrypt.compare(candidatePassword, this.password);
      callback(undefined, isMatch);
    } catch (err) {
      callback(err);
    }
  }
}
User.init(
  {
    id: {
      type: Sequelize.DataTypes.INTEGER.UNSIGNED,
      autoIncrement: true,
      primaryKey: true,
    },
    name: {
      type: Sequelize.DataTypes.STRING,
      allowNull: false,
    },
    email: {
      type: Sequelize.DataTypes.STRING(128),
      allowNull: false,
      unique: true,
    },
    googleId: {
      type: Sequelize.DataTypes.STRING(128),
      allowNull: true,
    },
    password: {
      type: Sequelize.DataTypes.STRING(300),
      allowNull: true,
    },
    token: {
      type: Sequelize.DataTypes.STRING(300),
      allowNull: true,
    },
  },
  {
    tableName: 'users',
    sequelize: sequelize, // this bit is important
  }
);

当我尝试使用

在DB中创建新记录时
await User.create({name, email, password, address});

它总是以无效的值返回我的错误,而我给出的任何输入

错误:无效的值{name:'d'}在object.escape (/users/eali/learn/akasa-server/node_modules/sequelize/lib/sql-string.js:65:11( 在postgresquerygenerator.scape上 (/users/eali/learn/akasa-server/node_modules/sequelize/lib/dialects/abstracts/query-generator.js:964:22( 在PostgresqueryGenerator._whereParsesingLevalueObject (/users/eali/learn/akasa-server/node_modules/sequelize/lib/dialects/abstracts/query-generator.js:2431:41( 在postgresqueryGenerator.WhereItemquery (/users/eali/learn/akasa-server/node_modules/sequelize/lib/dialects/abstracts/query-generator.js:2149:19( 在utils.getcomplexkeys.map.prop上 (/users/eali/learn/akasa-server/node_modules/sequelize/lib/dialects/abstracts/query-generator.js:2206:21( 在array.map((at PostgresqueryGenerator._wherebind (/users/eali/learn/akasa-server/node_modules/sequelize/lib/dialects/abstracts/query-generator.js:2204:43( 在postgresqueryGenerator.WhereItemquery (/users/eali/learn/akasa-server/node_modules/sequelize/lib/dialects/abstracts/query-generator.js:2139:19( 在utils.getcomplexkeys.foreach.prop上 (/users/eali/learn/akasa-server/node_modules/sequelize/lib/dialects/abstracts/query-generator.js:2048:25( 在array.foreach((at postgresqueryGenerator.WhereItemsquery (/users/eali/learn/akasa-server/node_modules/sequelize/lib/dialects/abstracts/query-generator.js:2046:35( 在postgresqueryGenerator.getWhereConditions (/users/eali/learn/akasa-server/node_modules/sequelize/lib/dialects/abstracts/query-generator.js:2458:19( 在PostgresqueryGenerator.SelectQuery (/users/eali/learn/akasa-server/node_modules/sequelize/lib/dialects/abstracts/query-generator.js:1279:28( 在queryinterface.select上 (/users/eali/learn/akasa-server/node_modules/sequelize/lib/query-interface.js:1120:27( 在Promise.try.then.then.then (/users/eali/learn/akasa-server/node_modules/sequelize/lib/model.js:1748:34( 在TryCatcher (/users/eali/learn/akasa-server/node_modules/bluebird/js/release/release/util.js:16:23( 在Promise._settle -promisefromhandler (/users/eali/learn/akasa-server/node_modules/bluebird/js/release/promise.js:512:31( 在Promise._settlePromise (/users/eali/learn/akasa-server/node_modules/bluebird/js/release/promise.js:569:18( 在Promise._settlePromise0 (/users/eali/learn/akasa-server/node_modules/bluebird/js/release/promise.js:614:10( 在Promise._settlePromises (/users/eali/learn/akasa-server/node_modules/bluebird/js/release/promise.js:694:18( 在_drainqueuestep (/users/eali/learn/akasa-server/node_modules/bluebird/js/release/async.js:138:12( 在_drainqueue (/users/eali/learn/akasa-server/node_modules/bluebird/js/release/async.js:131:9(

我的第一个猜测是,您忘了在属性密钥中添加值:

await User.create({name, email, password, address});

应该是:

await User.create({name: 'john wayne', email: 'lol@example.com', password: '1234', address: 'Someplace 1'});

最新更新