ValidationError [SequelizeValidationError]: Validation error: Invalid validator function: nonEmpty,

ValidationError [SequelizeValidationError]: Validation error: Invalid validator function: nonEmpty,

我是第一次尝试 Sequelize.js,我不知道错误是什么。我正在使用 Oath2 进行 Google 登录并将用户数据发送到 MySQL 本地主机服务器:

错误

ValidationError [SequelizeValidationError]: Validation error: Invalid validator function: nonEmpty,
Validation error: Invalid validator function: nonEmpty,
Validation error: Invalid validator function: nonEmpty
at InstanceValidator._validate (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:78:13)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at async InstanceValidator._validateAndRunHooks (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:111:7)
at async InstanceValidator.validate (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:93:12) at async model.save (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\model.js:3877:7)
at async Function.create (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\model.js:2207:12) { errors: [ ValidationErrorItem { message: 'Invalid validator function: nonEmpty', type: 'Validation error', path: 'name', value: 'Ravikant Chaudhary', origin: 'FUNCTION', instance: [User], validatorKey: null, validatorName: null, validatorArgs: [],
original: Error: Invalid validator function: nonEmpty at InstanceValidator._invokeBuiltinValidator (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:300:13)
at F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:222:37
at F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:4925:15
at Function.forIn (F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:12976:11)
at InstanceValidator._singleAttrValidate (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:198:7)
at F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:148:30
at F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:4925:15
at Function.forIn (F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:12976:11)
at InstanceValidator._perAttributeValidators (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:131:7) at InstanceValidator._validate (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:73:12)
}, ValidationErrorItem { message: 'Invalid validator function: nonEmpty', type: 'Validation error', path: 'email', value: 'ravikc1799@gmail.com', origin: 'FUNCTION', instance: [User], validatorKey: null, validatorName: null, validatorArgs: [], original: Error: Invalid validator function: nonEmpty at InstanceValidator._invokeBuiltinValidator (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:300:13) at F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:222:37 at F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:4925:15 at Function.forIn (F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:12976:11) at InstanceValidator._singleAttrValidate (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:198:7)
at F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:148:30 at F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:4925:15 at Function.forIn (F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:12976:11) at InstanceValidator._perAttributeValidators (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:131:7) at InstanceValidator._validate (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:73:12) }, ValidationErrorItem { message: 'Invalid validator function: nonEmpty', type: 'Validation error', path: 'googleId', value: '105642570429787261091', origin: 'FUNCTION', instance: [User], validatorKey: null, validatorName: null, validatorArgs: [], original: Error: Invalid validator function: nonEmpty at InstanceValidator._invokeBuiltinValidator (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:300:13) at F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:222:37 at F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:4925:15 at Function.forIn (F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:12976:11) at InstanceValidator._singleAttrValidate (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:198:7)
at F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:148:30 at F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:4925:15 at Function.forIn (F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:12976:11) at InstanceValidator._perAttributeValidators (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:131:7) at InstanceValidator._validate (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:73:12) } ] }

index.js

   const cors = require('cors')

   const app = express()

const db = require('./models');
const { User } = require('./models');

app.use(express.json())
app.use(cors());


app.post("/signin", (req, res) => {
   const name = req.body.name
   const email = req.body.email
   const googleId = req.body.googleId

   User.create({
       name: name,
       email: email,
       googleId: googleId
   }).catch((err) => {
       console.log(err);
   });

   res.send('inserted into database')
})


const PORT = 5000

db.sequelize.sync().then((req) => {
   app.listen(PORT, () => {
       console.log(`node server started at port : ${PORT}`)
   });
});

型号


module.exports = (sequelize) => {
    const User = sequelize.define("User", {
        name: {
            type: Sequelize.STRING,
            allowNull: false,
            validate: {
                nonEmpty: true
            }
        },
        email: {
            type: Sequelize.STRING,
            allowNull: false,
            validate: {
                nonEmpty: true
            }
        },
        googleId: {
            type: Sequelize.STRING,
            allowNull: false,
            validate: {
                nonEmpty: true
            }
        }
    });

    return User;
};

您应该更正验证的名称,它应该是 notEmpty 而不是 nonEmpty:

name: {
            type: Sequelize.STRING,
            allowNull: false,
            validate: {
                notEmpty: true
            }
        }

参见Validations and constraints

中的每个属性验证