大家好呀 !上次我们知道了如何进行数据的新增 !那么 对应数据的查询该如何处理呢? 别急 我们现在来一步一步来学习。
- api 新增 get请求
import { LinRouter } from 'lin-mizar';
import { ContentValidator } from '../../validator/content';
import { contentService } from '../../service/content';
const ContentApi = new LinRouter({
prefix: '/v1/Content'
});
ContentApi.get('/', async ctx => {
// 看情况是否进行校验 ,我们get没有传递参数 ,所以不进行校验
// 1. 调用服务层
const res = await contentService.getcontent();
ctx.json(res);
// 2.返回数据
});
module.exports = { ContentApi };
2.新增请求后 我们需要对应service 层 ,在以前的service 层增加一个方法
// 查询数据方法
static async getcontent () {
// 调用 dao层
const musiclist = await MusicDao.getList();
const movielist = await MovieDao.getList();
const sentencelist = await SentenceDao.getList();
// 我们需要将数据整合一下
let res = [];
res.push(...musiclist, ...movielist, ...sentencelist); //展开
//按照时间排序处理 返回1 升序 返回-1 放后面 代表降序
res.sort((a,b)=>{
if(a>b){
return 1
}
if(a<b){
return -1
}
return 0
})
// 返回结果
return res;
}
3.增加对应的dao层 ,在亦有的类中增加一个方法
// 查询数据
static async getList () {
const res = await MusicModel.findAll(); //调用模型的findall方法 返回全部数据
return res;
}
。。。调用接口发现 时间格式不正确 我们需要配置一下sequelize ,实例会帮我们格式化时间
{
dialectOptions: { // 这个配置帮助我们格式化时间
dateStrings: true,
typeCast: true
},
pool: { //链接池配置
max: 5,
min: 0,
acquire: 30000,
idle: 10000
},
timezone: '+08:00' //改为标准时区
}
现在调用接口试试吧!