fortunes.rt.js 901 B

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