gpt4 book ai didi

javascript - 如何为应用程序只执行一次方法

转载 作者:行者123 更新时间:2023-12-02 15:58:37 26 4
gpt4 key购买 nike

我有一个 NodeJS 应用程序,我想执行一些文件验证方法,但仅一次(此方法将验证 Node 应用程序下的一些文件)。

有没有一种优雅的方式来做到这一点?事件?

最佳答案

NodeJS documentation on modules指出:

Modules are cached after the first time they are loaded.

您可以通过向模块添加静态代码来利用它。无论模块加载多少次,静态代码都会保留其状态(/值)。

您可以使用方法中的状态来实现一个可以在您喜欢的任何时候调用的方法(在初始化期间的最佳时间),但只能调用一次。这非常简单:

var called = false;

function checkFiles() {
if (called) return;

// Perform your validation
called = true;
}

module.exports = {
checkFiles: checkFiles
};

由于模块缓存,您可以在任意多个位置请求此文件,但它仍然只会执行一次。

要调用此函数,您有几个选项:

对于一个简单的应用程序,您可以从主模块(或函数)调用该函数,届时它将被调用。如果验证应该是异步的,您可以将 main 方法包装在一个函数中,并将其作为回调传递给验证器。

//#! /bin/env node
var express = require('express');
var validator = require('./validator');

validator.checkFiles();
var app = express();

var server = app.listen(3000, function () {
...
});

对于更复杂的应用程序,您应该在现有的初始化例程中调用此函数(同样,根据需要使用回调)。

如果您有一个很好的基于 promise 的现代初始化程序,您可以简单地将验证器添加为链的第一步。

关于javascript - 如何为应用程序只执行一次方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31386539/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com