article.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  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. article = ctx.request.body
  14. article['authorID'] = 1
  15. result = await ArticleDao.insert(article)
  16. console.log(result);
  17. ctx.body = result
  18. })
  19. router.get('/', async (ctx) => {
  20. let result = await ArticleDao.selectLatest(0, 20)
  21. result = JSON.parse(JSON.stringify(result))
  22. let articles = []
  23. let pros = [] // 存放Promise对象
  24. result.map(item => {
  25. let authorID = item.author_id
  26. pros.push(UserDao.selectById(authorID))
  27. })
  28. let result2 = await Promise.all(pros) // Promise.all() 完成所有promise后返回结果集
  29. let count = 0
  30. result.map(item => {
  31. user = JSON.parse(JSON.stringify(result2[count]))[0]
  32. let stuff = {
  33. ...item,
  34. author: {
  35. name: user.user_name,
  36. avatar: user.avatar
  37. }
  38. }
  39. articles.push(stuff)
  40. count += 1
  41. })
  42. ctx.body = articles
  43. })
  44. module.exports = router