From 9792f123d5914bcd7ac4b9fb51c1dec122379c64 Mon Sep 17 00:00:00 2001 From: fatchan Date: Wed, 17 Apr 2019 05:04:56 +0000 Subject: [PATCH] put boards in a map --- db/boards.js | 16 +++++++++++++--- models/forms/make-post.js | 3 +-- server.js | 2 ++ 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/db/boards.js b/db/boards.js index 81ee74a6..cbe09a30 100644 --- a/db/boards.js +++ b/db/boards.js @@ -1,7 +1,8 @@ 'use strict'; const Mongo = require(__dirname+'/db.js') - , db = Mongo.client.db('jschan'); + , db = Mongo.client.db('jschan') + , boardCache = new Map(); module.exports = { @@ -11,7 +12,7 @@ module.exports = { return db.collection('boards').findOne({ '_id': name }); }, - find: (name) => { + find: () => { return db.collection('boards').find({}).toArray(); }, @@ -31,9 +32,18 @@ module.exports = { return db.collection('boards').deleteMany({}); }, + cache: async () => { + const boards = await module.exports.find(); + for (let i = 0; i < boards.length; i++) { + const board = boards[i]; + boardCache.set(board._id, board); + } + }, + exists: async (req, res, next) => { - const board = await module.exports.findOne(req.params.board); + //const board = await module.exports.findOne(req.params.board); + const board = boardCache.get(req.params.board); if (!board) { return res.status(404).render('404'); } diff --git a/models/forms/make-post.js b/models/forms/make-post.js index 6ebd9709..30e22da9 100644 --- a/models/forms/make-post.js +++ b/models/forms/make-post.js @@ -12,7 +12,7 @@ const uuidv4 = require('uuid/v4') , simpleMarkdown = require(__dirname+'/../../helpers/markdown.js') , sanitize = require('sanitize-html') , sanitizeOptions = { - allowedTags: [ 'span', 'a', 'code', 'em', 'strong' ], + allowedTags: [ 'span', 'a', 'em', 'strong' ], allowedAttributes: { 'a': [ 'href', 'class' ], 'span': [ 'class' ] @@ -115,7 +115,6 @@ module.exports = async (req, res, next, numFiles) => { if (Array.isArray(processedFile.geometryString)) { processedFile.geometryString = processedFile.geometryString[0]; } - files.push(processedFile); } catch (err) { diff --git a/server.js b/server.js index 0bf0192d..a91533fc 100644 --- a/server.js +++ b/server.js @@ -20,6 +20,8 @@ const express = require('express') // let db connect await Mongo.connect(); + const Boards = require(__dirname+'/db/boards.js'); + await Boards.cache(); // parse forms and allow file uploads app.use(bodyParser.urlencoded({extended: true}));