【发布时间】: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