最近在用node整项目,下面来分享一下如何从数据库读取数据列表
// 引入公共方法
const Common = require ('./common');
// 引入常量
const Constant = require ('../constant/constant');
// 配置对象
let exportObj = {
list
};
// 导出对象
module.exports = exportObj;
// 获取数据列表
function list (req, res) {
// 定义一个返回对象
const resObj = Common.clone (Constant.DEFAULT_SUCCESS);
// 定义一个async任务
let tasks = {
// 校验参数方法
checkParams: (cb) => {
// TODO: 校验参数
Common.checkParams (req.query, ['page', 'rows'], cb);
},
query: ['checkParams', (results, cb) => {
// 设置分页信息
let offset = req.query.rows * (req.query.page - 1) || 0;
let limit = parseInt (req.query.rows) || 20;
//TODO: 存放查询条件信息
let whereCondition = {};
Model
.findAndCountAll ({
where: whereCondition,
offset: offset,
limit: limit,
order: [['time', 'DESC']],
})
.then (function (result) {
let list = [];
result.rows.forEach ((v, i) => {
let obj = {
//TODO: 封装返回数据信息
id: v.id
};
list.push (obj);
});
//TODO: 封装列表数据
resObj.data = {
list,
count: result.count
};
//TODO: 继续后续操作
cb (null);
})
.catch (function (err) {
//TODO: 错误处理
console.log (err);
// 传递错误信息到async最终方法
cb (Constant.DEFAULT_ERROR);
});
}]
};
// 执行公共方法中的autoFn方法,返回数据
Common.autoFn (tasks, res, resObj)
}