【问题标题】:ValidationError [SequelizeValidationError]: Validation error: Invalid validator function: nonEmpty,ValidationError [SequelizeValidationError]:验证错误:无效的验证器函数:nonEmpty,
【发布时间】:2020-12-31 20:44:18
【问题描述】:

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

错误

ValidationError [SequelizeValidationError]:验证错误:无效的验证器函数:nonEmpty,
验证错误:无效的验证器函数:nonEmpty,
验证错误:无效的验证器函数:nonEmpty
在 InstanceValidator._validate (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:78:13)
在 processTicksAndRejections (internal/process/task_queues.js:97:5)
在异步 InstanceValidator._validateAndRunHooks (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:111:7)
在异步 InstanceValidator.validate (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:93:12) 在异步 model.save (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\model.js:3877:7)
在异步 Function.create (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\model.js:2207:12) { 错误:[ 验证错误项 { message: '无效的验证器函数:nonEmpty', 类型:'验证错误', 路径:'名称', 值:'Ravikant Chaudhary', 起源:'功能', 实例:[用户], 验证器密钥:空, 验证器名称:空, 验证器参数:[],
原文:错误:无效的验证器函数:nonEmpty 在 InstanceValidator._invokeBuiltinValidator (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:300:13)
在 F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:222:37
在 F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:4925:15
在 Function.forIn (F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:12976:11)
在 InstanceValidator._singleAttrValidate (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:198:7)
在 F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:148:30
在 F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:4925:15
在 Function.forIn (F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:12976:11)
在 InstanceValidator._perAttributeValidators (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:131:7) 在 InstanceValidator._validate (F:\Web Development\YT\Ytube\server\ node_modules\sequelize\lib\instance-validator.js:73:12)
}, 验证错误项 { message: '无效的验证器函数:nonEmpty', 类型:'验证错误', 路径:'电子邮件', 值:'ravikc1799@gmail.com', 起源:'功能', 实例:[用户], 验证器密钥:空, 验证器名称:空, 验证器参数:[], 原文:错误:无效的验证器函数:nonEmpty 在 InstanceValidator._invokeBuiltinValidator (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:300:13) 在 F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:222:37 在 F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:4925:15 在 Function.forIn (F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:12976:11) 在 InstanceValidator._singleAttrValidate (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:198:7)
在 F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:148:30 在 F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:4925:15 在 Function.forIn (F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:12976:11) 在 InstanceValidator._perAttributeValidators (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:131:7) 在 InstanceValidator._validate (F:\Web Development\YT\Ytube\server\ node_modules\sequelize\lib\instance-validator.js:73:12) }, 验证错误项 { message: '无效的验证器函数:nonEmpty', 类型:'验证错误', 路径:'googleId', 值:'105642570429787261091', 起源:'功能', 实例:[用户], 验证器密钥:空, 验证器名称:空, 验证器参数:[], 原文:错误:无效的验证器函数:nonEmpty 在 InstanceValidator._invokeBuiltinValidator (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:300:13) 在 F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:222:37 在 F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:4925:15 在 Function.forIn (F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:12976:11) 在 InstanceValidator._singleAttrValidate (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:198:7)
在 F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:148:30 在 F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:4925:15 在 Function.forIn (F:\Web Development\YT\Ytube\server\node_modules\lodash\lodash.js:12976:11) 在 InstanceValidator._perAttributeValidators (F:\Web Development\YT\Ytube\server\node_modules\sequelize\lib\instance-validator.js:131:7) 在 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;
};

【问题讨论】:

    标签: sequelize.js


    【解决方案1】:

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

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

    参见Validations and constraints中的每个属性验证

    【讨论】:

    • 天哪,非常感谢。如此愚蠢的错误,我什至没有交叉检查。非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2020-10-14
    • 2015-11-03
    相关资源
    最近更新 更多