mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-07-27 10:02:59 +08:00
#12: Return a method for app.ts
This commit is contained in:
parent
981fe3a939
commit
168977a52b
@ -7,54 +7,58 @@ import compression = require('compression');
|
|||||||
import sessionParser = require('./routes/session_parser');
|
import sessionParser = require('./routes/session_parser');
|
||||||
import utils = require('./services/utils');
|
import utils = require('./services/utils');
|
||||||
|
|
||||||
require('./services/handlers');
|
function buildApp() {
|
||||||
require('./becca/becca_loader');
|
require('./services/handlers');
|
||||||
|
require('./becca/becca_loader');
|
||||||
|
|
||||||
|
const app = express();
|
||||||
|
|
||||||
|
// view engine setup
|
||||||
|
app.set('views', path.join(__dirname, 'views'));
|
||||||
|
app.set('view engine', 'ejs');
|
||||||
|
|
||||||
|
if (!utils.isElectron()) {
|
||||||
|
app.use(compression()); // HTTP compression
|
||||||
|
}
|
||||||
|
|
||||||
|
app.use(helmet.default({
|
||||||
|
hidePoweredBy: false, // errors out in electron
|
||||||
|
contentSecurityPolicy: false,
|
||||||
|
crossOriginEmbedderPolicy: false
|
||||||
|
}));
|
||||||
|
|
||||||
|
app.use(express.text({ limit: '500mb' }));
|
||||||
|
app.use(express.json({ limit: '500mb' }));
|
||||||
|
app.use(express.raw({ limit: '500mb' }));
|
||||||
|
app.use(express.urlencoded({ extended: false }));
|
||||||
|
app.use(cookieParser());
|
||||||
|
app.use(express.static(path.join(__dirname, 'public/root')));
|
||||||
|
app.use(`/manifest.webmanifest`, express.static(path.join(__dirname, 'public/manifest.webmanifest')));
|
||||||
|
app.use(`/robots.txt`, express.static(path.join(__dirname, 'public/robots.txt')));
|
||||||
|
app.use(sessionParser);
|
||||||
|
app.use(favicon(`${__dirname}/../../common/images/app-icons/win/icon.ico`));
|
||||||
|
|
||||||
|
require('./routes/assets').register(app);
|
||||||
|
require('./routes/routes').register(app);
|
||||||
|
require('./routes/custom').register(app);
|
||||||
|
require('./routes/error_handlers').register(app);
|
||||||
|
|
||||||
|
// triggers sync timer
|
||||||
|
require('./services/sync');
|
||||||
|
|
||||||
|
// triggers backup timer
|
||||||
|
require('./services/backup');
|
||||||
|
|
||||||
|
// trigger consistency checks timer
|
||||||
|
require('./services/consistency_checks');
|
||||||
|
|
||||||
|
require('./services/scheduler');
|
||||||
|
|
||||||
|
if (utils.isElectron()) {
|
||||||
|
require('@electron/remote/main').initialize();
|
||||||
|
}
|
||||||
|
|
||||||
const app = express();
|
return app;
|
||||||
|
|
||||||
// view engine setup
|
|
||||||
app.set('views', path.join(__dirname, 'views'));
|
|
||||||
app.set('view engine', 'ejs');
|
|
||||||
|
|
||||||
if (!utils.isElectron()) {
|
|
||||||
app.use(compression()); // HTTP compression
|
|
||||||
}
|
}
|
||||||
|
|
||||||
app.use(helmet.default({
|
export = buildApp;
|
||||||
hidePoweredBy: false, // errors out in electron
|
|
||||||
contentSecurityPolicy: false,
|
|
||||||
crossOriginEmbedderPolicy: false
|
|
||||||
}));
|
|
||||||
|
|
||||||
app.use(express.text({ limit: '500mb' }));
|
|
||||||
app.use(express.json({ limit: '500mb' }));
|
|
||||||
app.use(express.raw({ limit: '500mb' }));
|
|
||||||
app.use(express.urlencoded({ extended: false }));
|
|
||||||
app.use(cookieParser());
|
|
||||||
app.use(express.static(path.join(__dirname, 'public/root')));
|
|
||||||
app.use(`/manifest.webmanifest`, express.static(path.join(__dirname, 'public/manifest.webmanifest')));
|
|
||||||
app.use(`/robots.txt`, express.static(path.join(__dirname, 'public/robots.txt')));
|
|
||||||
app.use(sessionParser);
|
|
||||||
app.use(favicon(`${__dirname}/../../common/images/app-icons/win/icon.ico`));
|
|
||||||
|
|
||||||
require('./routes/assets').register(app);
|
|
||||||
require('./routes/routes').register(app);
|
|
||||||
require('./routes/custom').register(app);
|
|
||||||
require('./routes/error_handlers').register(app);
|
|
||||||
|
|
||||||
// triggers sync timer
|
|
||||||
require('./services/sync');
|
|
||||||
|
|
||||||
// triggers backup timer
|
|
||||||
require('./services/backup');
|
|
||||||
|
|
||||||
// trigger consistency checks timer
|
|
||||||
require('./services/consistency_checks');
|
|
||||||
|
|
||||||
require('./services/scheduler');
|
|
||||||
|
|
||||||
if (utils.isElectron()) {
|
|
||||||
require('@electron/remote/main').initialize();
|
|
||||||
}
|
|
||||||
|
|
||||||
export = app;
|
|
||||||
|
@ -18,7 +18,7 @@ function exit() {
|
|||||||
process.on('SIGINT', exit);
|
process.on('SIGINT', exit);
|
||||||
process.on('SIGTERM', exit);
|
process.on('SIGTERM', exit);
|
||||||
|
|
||||||
import app = require('./app');
|
import buildApp = require('./app');
|
||||||
import sessionParser = require('./routes/session_parser');
|
import sessionParser = require('./routes/session_parser');
|
||||||
import fs = require('fs');
|
import fs = require('fs');
|
||||||
import http = require('http');
|
import http = require('http');
|
||||||
@ -27,10 +27,10 @@ import config = require('./services/config');
|
|||||||
import log = require('./services/log');
|
import log = require('./services/log');
|
||||||
import appInfo = require('./services/app_info');
|
import appInfo = require('./services/app_info');
|
||||||
import ws = require('./services/ws');
|
import ws = require('./services/ws');
|
||||||
import utils = require('./services/utils');
|
|
||||||
import port = require('./services/port');
|
import port = require('./services/port');
|
||||||
import host = require('./services/host');
|
import host = require('./services/host');
|
||||||
import semver = require('semver');
|
import semver = require('semver');
|
||||||
|
import type { Express } from "express";
|
||||||
|
|
||||||
function startTrilium() {
|
function startTrilium() {
|
||||||
if (!semver.satisfies(process.version, ">=10.5.0")) {
|
if (!semver.satisfies(process.version, ">=10.5.0")) {
|
||||||
@ -40,19 +40,21 @@ function startTrilium() {
|
|||||||
|
|
||||||
log.info(JSON.stringify(appInfo, null, 2));
|
log.info(JSON.stringify(appInfo, null, 2));
|
||||||
|
|
||||||
|
const app = buildApp();
|
||||||
|
|
||||||
const cpuInfos = require('os').cpus();
|
const cpuInfos = require('os').cpus();
|
||||||
if (cpuInfos && cpuInfos[0] !== undefined) { // https://github.com/zadam/trilium/pull/3957
|
if (cpuInfos && cpuInfos[0] !== undefined) { // https://github.com/zadam/trilium/pull/3957
|
||||||
log.info(`CPU model: ${cpuInfos[0].model}, logical cores: ${cpuInfos.length} freq: ${cpuInfos[0].speed} Mhz`); // for perf. issues it's good to know the rough configuration
|
log.info(`CPU model: ${cpuInfos[0].model}, logical cores: ${cpuInfos.length} freq: ${cpuInfos[0].speed} Mhz`); // for perf. issues it's good to know the rough configuration
|
||||||
}
|
}
|
||||||
|
|
||||||
const httpServer = startHttpServer();
|
const httpServer = startHttpServer(app);
|
||||||
|
|
||||||
ws.init(httpServer, sessionParser as any); // TODO: Not sure why session parser is incompatible.
|
ws.init(httpServer, sessionParser as any); // TODO: Not sure why session parser is incompatible.
|
||||||
|
|
||||||
return app;
|
return app;
|
||||||
}
|
}
|
||||||
|
|
||||||
function startHttpServer() {
|
function startHttpServer(app: Express) {
|
||||||
app.set('port', port);
|
app.set('port', port);
|
||||||
app.set('host', host);
|
app.set('host', host);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user