Это сервер Windows с IIS и IISNODE (если это актуально).
У меня есть следующий код в app.ts (упрощенно)
import * as express from "express";
import log from "../util/log";
class App {
public express: express.Application;
constructor() {
this.express = express();
log.default.info("starting app");
this.middleware();
}
private middleware(): void {
log.default.info("starting middleware");
this.express.use((req: IRequest, res: express.Response, next: express.NextFunction) => {
this.getAllClientConfigurations(req, res, next);
});
etc.....
При перезапуске сайта в IIS и последующем обращении к нему с запросом он создает две записи «запуска приложения» в файле журнала, сгенерированном сценарием журнала
Это приводит к тому, что функция middleware () вызывается дважды. Внутри функции промежуточного программного обеспечения я вызываю другую функцию, которая устанавливает некоторые клиентские переменные и запускает некоторые важные службы Cron, которые запускаются только один раз.
Как я могу убедиться, что все работает только один раз?