// title 文章标题 contern 文章内容 // 获取所有文章列表 var articlefind = async (ctx, next) => { let articlelist=[]; let tags=[] await dbs.find("articlelists").then(async (res) => { let articlelists=res.data await dbs.find("group").then((res)=>{ let groups=res.data // 遍历 group表,检测 传入的groupid是不是在 group表中存在 // 如果不在,就返回所有文章 // 如果在group表中,就返回该分组的文章 for(let i in groups){ if(parseInt(ctx.query.groupid)==groups[i].num_key){ // console.log(groups[i]) // 判断 该分组是不是最后一层的分组 如果不是返回所有文章 // 如果是最后一层,(即没有 children),就返回该分组的文章 也就是 articlelist 的初始值 if(groups[i].fuid!=0){ for(let m in articlelists){ if(articlelists[m].groupid==parseInt(ctx.query.groupid)){ articlelist.push(articlelists[m]) } // articlelist.push() } } } } if(articlelist.length==0){ articlelist=articlelists } }) // articlelist = res.data await dbs.find("articletag").then( async (res)=>{ // 给articlelist 添加tag字段 从articletag表中取出每个文章的对应tagid for(let i in articlelist){ for(let m in res.data){ // console.log(res.data[m].articleid,articlelist[i].num_key,res.data[m].tagid) if(res.data[m].articleid==articlelist[i].num_key){ // console.log(res.data[m].articleid,articlelist[i].num_key,res.data[m].tagid) // console.log(res.data[m].articleid) // console.log(res.data[m].articleid,res.data[m].tagid) // tags.push([res.data[m].articleid]) tags.push(res.data[m].tagid) articlelist[i].tag=tags }else{ tags=[] } } // console.log(tags) } // articlelist的tag已经写入 tagid了,根据 label表 把tagid转化成labelname await dbs.find("label").then((res)=>{ for(let i in articlelist){ for(let m in articlelist[i].tag){ console.log(articlelist[i].tag[m]) for(let n in res.data){ // label的num_key 和articlelist 的tagid比对 if(res.data[n].num_key==articlelist[i].tag[m]){ articlelist[i].tag[m]=res.data[n].lablename } } } } }) }) ctx.body=articlelist }) next() } // 添加文章 // 参数: title 文章标题, content 文章内容 tags 选择的标签id 形式: 1,2, group 分组id var articleadd = async (ctx, next) => { let articleid=0 let month=parseInt(new Date(Date.now()).getMonth())+1 // await dbs.add("articletag",{articleid:ctx.query.articleid,tagid:ctx.query.tagid}) await dbs.add("articlelists", { articletitle:ctx.request.body.title, date: new Date(Date.now()).getFullYear ()+ '/' + month+ '/' + new Date(Date.now()).getDate() + ' ' + new Date(Date.now()).getHours() + ':' + new Date(Date.now()).getMinutes() + ':' + new Date(Date.now()).getSeconds(),content:ctx.request.body.content,uid:1,groupid:ctx.request.body.groupid}) await dbs.find("label").then(async (res)=>{ // console.log(res.data) await dbs.find("idadd").then((res)=>{ // console.log(res) for(let i in res.data){ // console.log(res.data[i].set) if(res.data[i].set=='articlelists'){ console.log(res.data[i].num_key-1,"article") articleid=res.data[i].num_key-1 // 取 文章id: 从 idadd表 取 set=articlelsits 的 numkey-1就是 新文章的id } } }) let tags=ctx.request.body.tags.split(",") for(let i in tags){ // console.log(tags[i]) for(let m in res.data){ // console.log(res.data[m].num_key,parseInt(tags[i])) if(res.data[m].num_key==parseInt(tags[i])){ console.log(res.data[m].lablename,77774) // 比对 label的num_key 和 传进来的tagsid 相等就往articletag写入 记录 文章id和标签id await dbs.add("articletag",{articleid:articleid,tagid:parseInt(tags[i])}) } } } }) console.log(ctx.request.body) ctx.body = "添加成功" next() } // 删除文章 var articledel=async(ctx,next)=>{ await dbs.remove("articlelists",{num_key:parseInt(ctx.query.key)}).then((res)=>{ console.log(res) console.log(ctx.query) }) ctx.body="删除成功" next() } // 修改文章 var articleupdate=async (ctx,next)=>{ let month=parseInt(new Date(Date.now()).getMonth())+1 await dbs.update("articlelists",{num_key:parseInt(ctx.query.key)},{articletitle:ctx.query.title, udate: new Date(Date.now()).getFullYear ()+ '/' + month+ '/' + new Date(Date.now()).getDate() + ' ' + new Date(Date.now()).getHours() + ':' + new Date(Date.now()).getMinutes() + ':' + new Date(Date.now()).getSeconds()}) ctx.body="修改成功" next() // console.log(new Date(Date.now()).getFullYear ()+ '/' + month+ '/' + new Date(Date.now()).getDate() + ' ' + new Date(Date.now()).getHours() + ':' + new Date(Date.now()).getMinutes()) // console.log(new Date(Date.now()).getDate()) } module.exports = { 'POST /articleadd': articleadd, 'GET /articlefind': articlefind, 'GET /articledel': articledel, 'POST /articleupdate': articleupdate };