fix: implement express-ejs-layouts for proper template inheritance
ISSUE: EJS v3+ removed ability to pass raw template strings to include() Dashboard template used old pattern causing 'include is not a function' error SOLUTION (per Gemini consultation): 1. Installed express-ejs-layouts package 2. Added expressLayouts middleware to index.js 3. Set default layout to 'layout' 4. layout.ejs already had <%- body %> injection point 5. Removed include() wrapper from dashboard.ejs (first/last lines) FILES MODIFIED: - services/arbiter-3.0/src/index.js (+4 lines - import and config) - services/arbiter-3.0/src/views/admin/dashboard.ejs (-2 lines - wrapper removal) TESTING: Visit /admin after Discord OAuth - should render HTML dashboard Credit: Gemini consultation - EJS v3+ layout pattern fix Signed-off-by: Claude (Chronicler #57) <claude@firefrostgaming.com>
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
require('dotenv').config();
|
||||
const express = require('express');
|
||||
const expressLayouts = require('express-ejs-layouts');
|
||||
const session = require('express-session');
|
||||
const passport = require('passport');
|
||||
const DiscordStrategy = require('passport-discord').Strategy;
|
||||
@@ -38,6 +39,10 @@ app.set('trust proxy', 1);
|
||||
app.set('view engine', 'ejs');
|
||||
app.set('views', __dirname + '/views');
|
||||
|
||||
// Enable proper layout rendering with express-ejs-layouts
|
||||
app.use(expressLayouts);
|
||||
app.set('layout', 'layout'); // Default layout is views/layout.ejs
|
||||
|
||||
// CRITICAL: Stripe webhook needs raw body BEFORE express.json() middleware
|
||||
// Mounted at /webhooks/stripe to avoid conflict with /stripe checkout mount
|
||||
app.use('/webhooks/stripe', stripeRoutes);
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
<%- include('../layout', { body: `
|
||||
<div class="grid grid-cols-1 md:grid-cols-4 gap-6 mb-6">
|
||||
<div class="bg-white dark:bg-darkcard rounded-lg shadow-sm border border-gray-200 dark:border-gray-700 p-6">
|
||||
<div class="text-sm text-gray-500 dark:text-gray-400">Active Subscribers</div>
|
||||
@@ -27,4 +26,3 @@
|
||||
<strong>Fire + Frost + Foundation = Where Love Builds Legacy</strong>
|
||||
</p>
|
||||
</div>
|
||||
`}) %>
|
||||
|
||||
Reference in New Issue
Block a user