Public Access
1
0

new: 404 redirect in server.js

This commit is contained in:
2025-08-23 17:34:29 -04:00
parent 9994878e49
commit a54d6e445f

View File

@@ -4,13 +4,8 @@ const fs = require('fs-extra');
const path = require('path'); const path = require('path');
const app = express(); const app = express();
const port = 3000; // You can change this port if needed const port = 3000;
// Enable trust proxy to ensure Express correctly handles protocols (http/https)
// and client IP addresses when running behind a reverse proxy.
// This is crucial for correct URL generation in redirects and for security features
// like rate limiting. The value 'true' trusts the X-Forwarded-* headers
// set by the immediate upstream proxy.
app.set('trust proxy', true); app.set('trust proxy', true);
// Path to the file where view counts will be stored // Path to the file where view counts will be stored
@@ -23,7 +18,7 @@ if (initialData.length === 0) {
fs.writeJsonSync(dbPath, {}); fs.writeJsonSync(dbPath, {});
} }
app.use(cors()); // Enable Cross-Origin Resource Sharing app.use(cors());
app.use(express.json()); app.use(express.json());
// In production, the server also serves the static site from the `_site` directory. // In production, the server also serves the static site from the `_site` directory.
@@ -58,6 +53,12 @@ app.post('/api/views/:slug', async (req, res) => {
} }
}); });
// --- 404 Handler (Catch-All) ---
// This MUST be the last route or middleware added.
app.use((req, res, next) => {
res.redirect('/404.html');
});
app.listen(port, () => { app.listen(port, () => {
console.log(`View counter server listening at http://localhost:${port}`); console.log(`View counter server listening at http://localhost:${port}`);
}); });