use `redirect: false` in express.static

This prevents prolems like `/` giving 404 in devel mode (when
`static/html/index.html` is missing) or `/captcha` redirecting to
`/captcha/` (then breaking).
merge-requests/208/head
some_random_guy 4 years ago committed by Thomas Lynch
parent e98713c26f
commit 0f20646833
  1. 4
      db/boards.js
  2. 1
      db/posts.js
  3. 63
      helpers/addmodlogs.js
  4. 1
      models/forms/addnews.js
  5. 1
      models/forms/changeboardsettings.js
  6. 1
      models/forms/deleteboard.js
  7. 2
      models/pages/globalmanage/settings.js
  8. 5
      redis.js
  9. 1
      schedules/webring.js
  10. 6
      server.js

@ -11,8 +11,8 @@ module.exports = {
findOne: async (name) => {
let board = await cache.get(`board:${name}`);
if (board && board !== 'no_exist') {
return board;
if (board) {
return board === 'no_exist' ? null : board;
} else {
board = await db.findOne({ '_id': name });
if (board) {

@ -4,7 +4,6 @@ const Mongo = require(__dirname+'/db.js')
, Boards = require(__dirname+'/boards.js')
, Stats = require(__dirname+'/stats.js')
, db = Mongo.client.db('jschan').collection('posts')
, cache = require(__dirname+'/../redis.js')
, { quoteLimit, previewReplies, stickyPreviewReplies
, early404Replies, early404Fraction } = require(__dirname+'/../configs/main.js');

@ -1,63 +0,0 @@
'use strict';
//modlog
if (modlogActions.length > 0) {
const modlog = {};
const logDate = new Date(); //all events current date
const message = req.body.log_message || null;
let logUser;
if (res.locals.permLevel < 4) { //if staff
logUser = req.session.user.username;
} else {
logUser = 'Unregistered User';
}
for (let i = 0; i < res.locals.posts.length; i++) {
const post = res.locals.posts[i];
if (!modlog[post.board]) {
//per board actions, all actions combined to one event
modlog[post.board] = {
postIds: [],
actions: modlogActions,
date: logDate,
showUser: !req.body.hide_name || logUser === 'Unregistered User' ? true : false,
message: message,
user: logUser,
ip: {
single: res.locals.ip.single,
raw: res.locals.ip.raw
}
};
}
//push each post id
modlog[post.board].postIds.push(post.postId);
}
const modlogDocuments = [];
for (let i = 0; i < threadBoards.length; i++) {
const boardName = threadBoards[i];
const boardLog = modlog[boardName];
//make it into documents for the db
modlogDocuments.push({
...boardLog,
'board': boardName
});
}
if (modlogDocuments.length > 0) {
//insert the modlog docs
await Modlogs.insertMany(modlogDocuments);
for (let i = 0; i < threadBoards.length; i++) {
const board = buildBoards[threadBoards[i]];
buildQueue.push({
'task': 'buildModLog',
'options': {
'board': board,
}
});
buildQueue.push({
'task': 'buildModLogList',
'options': {
'board': board,
}
});
}
}
}

@ -2,7 +2,6 @@
const { News } = require(__dirname+'/../../db/')
, dynamicResponse = require(__dirname+'/../../helpers/dynamic.js')
, uploadDirectory = require(__dirname+'/../../helpers/files/uploadDirectory.js')
, buildQueue = require(__dirname+'/../../queue.js')
, messageHandler = require(__dirname+'/../../helpers/posting/message.js');

@ -5,7 +5,6 @@ const { Boards, Posts, Accounts } = require(__dirname+'/../../db/')
, { globalLimits } = require(__dirname+'/../../configs/main.js')
, uploadDirectory = require(__dirname+'/../../helpers/files/uploadDirectory.js')
, buildQueue = require(__dirname+'/../../queue.js')
, cache = require(__dirname+'/../../redis.js')
, { remove } = require('fs-extra')
, deletePosts = require(__dirname+'/deletepost.js')
, messageHandler = require(__dirname+'/../../helpers/posting/message.js')

@ -1,7 +1,6 @@
'use strict';
const { Accounts, Boards, Stats, Posts, Bans, Modlogs } = require(__dirname+'/../../db/')
, cache = require(__dirname+'/../../redis.js')
, deletePosts = require(__dirname+'/deletepost.js')
, uploadDirectory = require(__dirname+'/../../helpers/files/uploadDirectory.js')
, { remove } = require('fs-extra');

@ -12,7 +12,7 @@ module.exports = async (req, res, next) => {
filterMode: 0,
filterBanDuration: 0,
}
cache.set('globalsettings', settings);
cache.setnx('globalsettings', settings);
}
res

@ -22,6 +22,11 @@ module.exports = {
}
},
//set a value on key if not exist
setnx: (key, value) => {
client.setnx(key, JSON.stringify(value));
},
//add items to a set
sadd: (key, value) => {
return client.sadd(key, value);

@ -6,7 +6,6 @@ const fetch = require('node-fetch')
, Mongo = require(__dirname+'/../db/db.js')
, { Boards, Webring } = require(__dirname+'/../db/')
, { outputFile } = require('fs-extra')
, cache = require(__dirname+'/../redis.js')
, uploadDirectory = require(__dirname+'/../helpers/files/uploadDirectory.js')
, timeDiffString = require(__dirname+'/../helpers/timediffstring.js')
, SocksProxyAgent = proxy.enabled && require('socks-proxy-agent')

@ -77,9 +77,9 @@ const express = require('express')
// routes
if (!production) {
app.use(express.static(__dirname+'/static'));
app.use(express.static(__dirname+'/static/html'));
app.use(express.static(__dirname+'/static/json'));
app.use(express.static(__dirname+'/static', { redirect: false }));
app.use(express.static(__dirname+'/static/html', { redirect: false }));
app.use(express.static(__dirname+'/static/json', { redirect: false }));
}
app.use('/forms', require(__dirname+'/controllers/forms.js'));
app.use('/', require(__dirname+'/controllers/pages.js'));

Loading…
Cancel
Save