article.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. const router = require('koa-router')()
  2. const ArticleDao = require('../dao/ArticleDao')
  3. const ArticleEntity = require('../entity/ArticleEntity')
  4. const UserDao = require('../dao/UserDao')
  5. router.prefix('/articles')
  6. router.get('/:id', async (ctx) => {
  7. let id = ctx.params.id
  8. let result = await ArticleDao.selectByID(id)
  9. ctx.body = result
  10. })
  11. router.post('/', async (ctx) => {
  12. // console.log(ctx.request.body)
  13. // ctx.body = ctx.request.body
  14. console.log(ctx.request.body);
  15. article = ctx.request.body
  16. article['authorID'] = 1
  17. article['description'] = '当然也是一个测试'
  18. result = await ArticleDao.insert(article)
  19. console.log(result);
  20. ctx.body = result
  21. })
  22. router.get('/', async (ctx) => {
  23. let result = await ArticleDao.selectLatest(0, 20)
  24. result = JSON.parse(JSON.stringify(result))
  25. let articles = []
  26. let pros = [] // 存放Promise对象
  27. result.map(item => {
  28. let authorID = item.author_id
  29. pros.push(UserDao.selectById(authorID))
  30. })
  31. let result2 = await Promise.all(pros) // Promise.all() 完成所有promise后返回结果集
  32. let count = 0
  33. result.map(item => {
  34. user = JSON.parse(JSON.stringify(result2[count]))[0]
  35. let stuff = {
  36. ...item,
  37. author: {
  38. name: user.user_name,
  39. avatar: user.avatar
  40. }
  41. }
  42. articles.push(stuff)
  43. count += 1
  44. })
  45. ctx.body = articles
  46. })
  47. module.exports = router