模型定义
const Sequelize = require('sequelize');
const BaseModel = require('./BaseModel');
const sequelize = require('../lib/HealthCheck').getCheckInstance().getMysqlConnection(); //获取最下面定义的sequelize连接
class UserModel extends BaseModel {
constructor() {
super();
}
async addNewUser(params) {//params是传过来的参数,主要是要添加的字段值,类型是Object
let addRuesult = await UserModel.findOrCreate({
where: {username: params.username},
defaults: {password: params.password, nickname: params.nickname, region: params.region, status: 11}
});
return addRuesult;
}
}
//用户表模型定义
UserModel.init({
id: {type: Sequelize.UUID, defaultValue: Sequelize.UUIDV1, allowNull: false, primaryKey: true},
username: {type: Sequelize.STRING, allowNull: false},
password: {type: Sequelize.STRING, allowNull: false},
nickname: Sequelize.STRING,
region: Sequelize.STRING,
status: {type: Sequelize.INTEGER(2), allowNull: false},
created_time: {type: Sequelize.DATE, allowNull: false},
last_login_time: Sequelize.DATE
}, {
sequelize,
modelName: 'user',
timestamps: true,
createdAt: 'created_time',
updatedAt: 'last_login_time',
deletedAt: false
});
module.exports = UserModel;
BaseModel定义
const Sequelize = require('sequelize');
const Model = Sequelize.Model;
class BaseModel extends Model{
constructor() {
super();
}
}
module.exports = BaseModel;
数据库连接定义
let sequelize = new Sequelize({
host: '127.0.0.1',
port: 3306,
username: 'root',
password: '123456',
database: 'service',
dialect: 'mysql',
define: {
freezeTableName: true
}
});
问题 模型定义由于有做字段值非空验证,结果sequelize会报验证非空错误,传过来的参数都是能正确获取到的,就是调用create或者findOrCreate方法时无法获取到字段值;我有试过在调用sequelize的方法时,直接将字段值写死,还是会报一样的错;大神们帮我看看到底是我定义错了,还是哪个地方出了问题?谢谢!