koa sequelize 怎么获取某个表的所有字段?
koa sequelize 怎么获取某个表的所有字段?
比如有个user表 如何能够直接获取 User表的字段 并不是数据只需要字段名 我在封装公用列表查询的时候 前端传递了不在表中的字段过来 会报错 Unknown column 'user.role' in 'where clause'
module.exports = function (sequelize, DataTypes) {
return sequelize.define('user', {
id: {
type: DataTypes.INTEGER.UNSIGNED,
allowNull: false,
primaryKey: true,
autoIncrement: true
},
// 用户名字
username: {
type: DataTypes.STRING(100),
field: 'username',
allowNull: false
},
// 用户状态
status: {
type: DataTypes.STRING(100),
defaultValue: 0 // 0 未启用 1 启用
},
}, {
freezeTableName: true
})
}
封装公用列表查询代码如下 javascript
/**
* @param {Object} query 请求内容
* model 对应请求的表model
* where 对应请求的查询条件
* order 对应请求的查询排序
* attributes 对应需要获取的参数字段
* querys {Object} url中请求的参数
*/
static async paginationList(query) {
const querys = query.querys
let where = {}
if (query.where) {
where = query.where
} else {
// 在这里会传入前端url中的参数但是如果传入了不存在的参数将抛出错误 ,
// 现在不想抛出错误还继续执行 所以想到能否获取到表所有字段后做筛选?
Object.keys(querys).map(item => {
if (item !== 'pagesize' && item !== 'page') {
where[item] = {
[Op.eq]: querys[item],
}
}
return item
})
}
try{
const user = await User.findAll({ //表实例暂时写死
attributes: query.attributes.split(','),
where,
order: [
[ 'created_at', 'ASC' ],
],
// 当前页
offset: ((querys.page || 1) - 1) * Number((querys.pagesize || 10)),
// 每页显示的条数
limit: Number((querys.pagesize || 10)),
})
return user
}catch(err){
throw err
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我的思路是用sequelize的原始查询执行上面的sql代码,当然这个是针对mysql的!