fix(core): Add view engine to webhook server to support forms (#9224)

This commit is contained in:
Yoshino-s
2024-04-29 16:55:45 +08:00
committed by GitHub
parent 8a26f4280a
commit 24c3150056
2 changed files with 7 additions and 14 deletions

View File

@@ -2,11 +2,12 @@ import { Container, Service } from 'typedi';
import { readFile } from 'fs/promises'; import { readFile } from 'fs/promises';
import type { Server } from 'http'; import type { Server } from 'http';
import express from 'express'; import express from 'express';
import { engine as expressHandlebars } from 'express-handlebars';
import compression from 'compression'; import compression from 'compression';
import isbot from 'isbot'; import isbot from 'isbot';
import config from '@/config'; import config from '@/config';
import { N8N_VERSION, inDevelopment, inTest } from '@/constants'; import { N8N_VERSION, TEMPLATES_DIR, inDevelopment, inTest } from '@/constants';
import * as Db from '@/Db'; import * as Db from '@/Db';
import { N8nInstanceType } from '@/Interfaces'; import { N8nInstanceType } from '@/Interfaces';
import { ExternalHooks } from '@/ExternalHooks'; import { ExternalHooks } from '@/ExternalHooks';
@@ -62,6 +63,10 @@ export abstract class AbstractServer {
this.app = express(); this.app = express();
this.app.disable('x-powered-by'); this.app.disable('x-powered-by');
this.app.engine('handlebars', expressHandlebars({ defaultLayout: false }));
this.app.set('view engine', 'handlebars');
this.app.set('views', TEMPLATES_DIR);
const proxyHops = config.getEnv('proxy_hops'); const proxyHops = config.getEnv('proxy_hops');
if (proxyHops > 0) this.app.set('trust proxy', proxyHops); if (proxyHops > 0) this.app.set('trust proxy', proxyHops);

View File

@@ -10,7 +10,6 @@ import { promisify } from 'util';
import cookieParser from 'cookie-parser'; import cookieParser from 'cookie-parser';
import express from 'express'; import express from 'express';
import helmet from 'helmet'; import helmet from 'helmet';
import { engine as expressHandlebars } from 'express-handlebars';
import { type Class, InstanceSettings } from 'n8n-core'; import { type Class, InstanceSettings } from 'n8n-core';
import type { IN8nUISettings } from 'n8n-workflow'; import type { IN8nUISettings } from 'n8n-workflow';
@@ -21,14 +20,7 @@ import config from '@/config';
import { Queue } from '@/Queue'; import { Queue } from '@/Queue';
import { WorkflowsController } from '@/workflows/workflows.controller'; import { WorkflowsController } from '@/workflows/workflows.controller';
import { import { EDITOR_UI_DIST_DIR, inDevelopment, inE2ETests, N8N_VERSION, Time } from '@/constants';
EDITOR_UI_DIST_DIR,
inDevelopment,
inE2ETests,
N8N_VERSION,
TEMPLATES_DIR,
Time,
} from '@/constants';
import { CredentialsController } from '@/credentials/credentials.controller'; import { CredentialsController } from '@/credentials/credentials.controller';
import type { APIRequest, CurlHelper } from '@/requests'; import type { APIRequest, CurlHelper } from '@/requests';
import { registerController } from '@/decorators'; import { registerController } from '@/decorators';
@@ -95,10 +87,6 @@ export class Server extends AbstractServer {
constructor() { constructor() {
super('main'); super('main');
this.app.engine('handlebars', expressHandlebars({ defaultLayout: false }));
this.app.set('view engine', 'handlebars');
this.app.set('views', TEMPLATES_DIR);
this.testWebhooksEnabled = true; this.testWebhooksEnabled = true;
this.webhooksEnabled = !config.getEnv('endpoints.disableProductionWebhooksOnMainProcess'); this.webhooksEnabled = !config.getEnv('endpoints.disableProductionWebhooksOnMainProcess');
} }