| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 | const db = process.env.DATABASE;const { App } = require('@ionited/mesh');const addHeaders = (res, contentType) => res.header('Content-Type', contentType).header('Server', 'Mesh');const escapeHTMLRules = {  "&": "&",  "<": "<",  ">": ">",  '"': """,  "'": "'",  "/": "/",};const unsafeHTMLMatcher = /[&<>"'\/]/g;const escape = text => {  if (unsafeHTMLMatcher.test(text) === false) return text;  return text.replace(unsafeHTMLMatcher,  m => escapeHTMLRules[m] || m);}const random = () => Math.floor(Math.random() * 1e4) + 1;const app = new App();app.get('/json', (_, res) => {  addHeaders(res, 'application/json');  res.json({ message: 'Hello, World!' });}).get('/plaintext', (_, res) => {  addHeaders(res, 'text/plain');  res.send('Hello, World!');});if (db) {  const DRIVER = require(`./drivers/${db}`);  app    .get('/db', async (_, res) => {    addHeaders(res, 'application/json');    res.json(await DRIVER.find(random()));  })    .get('/queries', async (req, res) => {    const { queries } = req.query();    const count = Math.min(parseInt(queries) || 1, 500);    const arr = [];    for (let i = 0; i < count; i++) arr.push(await DRIVER.find(random()));    addHeaders(res, 'application/json');    res.json(arr);  })    .get('/fortunes', async (_, res) => {    const items = [{      id: 0,      message: 'Additional fortune added at request time.'    }, ...await DRIVER.fortunes()].sort((a, b) => a.message.localeCompare(b.message));    let html = '<!DOCTYPE html><html><head><title>Fortunes</title></head><body><table><tr><th>id</th><th>message</th></tr>';    for (let i = 0; i < items.length; i++) html += `<tr><td>${items[i].id}</td><td>${escape(items[i].message)}</td></tr>`;    html += '</table></body></html>';    addHeaders(res, 'text/html; charset=utf-8');    res.send(html);  })    .get('/updates', async (req, res) => {    const { queries } = req.query();    const count = Math.min(parseInt(queries) || 1, 500);    const arr = [];    for (let i = 0; i < count; i++) arr.push(await DRIVER.find(random()));    for (let i = 0; i < count; i++) {      arr[i].randomNumber = random();            await DRIVER.update(arr[i]);    }    addHeaders(res, 'application/json');    res.json(arr);  });}app.listen(8080);
 |