fortunes.rt.js 890 B

123456789101112131415161718192021222324252627282930
  1. const db = require( '../db' )
  2. const { escape } = require( 'html-escaper' )
  3. const runTimeFortune = {
  4. id: 0,
  5. message: 'Additional fortune added at request time.'
  6. }
  7. const renderBody = fortunes => {
  8. let body = '<!DOCTYPE html><html><head><title>Fortunes</title></head><body><table><tr><th>id</th><th>message</th></tr>'
  9. for( let fortune of fortunes ) {
  10. body += `<tr><td>${fortune.id}</td><td>${escape( fortune.message )}</td></tr>`
  11. }
  12. body += '</table></body></html>'
  13. return body
  14. }
  15. module.exports = {
  16. GET: async () => {
  17. let fortunes = await db.allFortunes()
  18. fortunes.push( runTimeFortune )
  19. fortunes.sort( ( a, b ) => a.message.localeCompare( b.message ) )
  20. return {
  21. headers: {
  22. 'Content-Type': 'text/html; charset=utf-8'
  23. },
  24. body: renderBody( fortunes )
  25. }
  26. }
  27. }