这是具有IIS和IISNODE(如果相关)的Windows服务器。
我在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服务。
如何确保所有内容只能运行一次?