router.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. const { LISTEN_PORT, PATH_ROOT, DOMAIN } = require('../config')
  2. const Koa = require('koa')
  3. const StaticServer = require('koa-static')
  4. const Router = require('koa-router')
  5. const createPDFOfURL = require('../create-pdf/pdf')
  6. const logger = require('../log/index')
  7. const miSend = require('./middleware')
  8. const errorHandle = require('./errorHandle')
  9. const app = new Koa()
  10. app.use(StaticServer(PATH_ROOT))
  11. app.use(logger.loggerMiddleware())
  12. app.use(miSend())
  13. app.use(errorHandle())
  14. const router = new Router({
  15. prefix: '/api'
  16. })
  17. router.get('/to-pdf/:name', async ctx => {
  18. const { name } = ctx.params
  19. const query = ctx.query
  20. const url = ctx.originalUrl.match(/url=(.*?)$/)[1]
  21. // 获取对应PDF
  22. logger.log.debug(url)
  23. logger.log.debug(query)
  24. const result = await createPDFOfURL(url, Object.assign({ filename : name }, query))
  25. // 成功通知
  26. ctx.send({
  27. status: true,
  28. data: {
  29. path: result.replace(PATH_ROOT, `${DOMAIN}`)
  30. }
  31. })
  32. })
  33. app.use(router.routes())
  34. app.listen(LISTEN_PORT);
  35. logger.log.info('app start run port ' + LISTEN_PORT)