Javascript需要缓存
对于我正在设计的一个小型无状态API,我需要一个非常简单的i18n工具。我将用两种语言管理少于30个字符串,最多不超过 我决定编写一个非常简单的i18n工具: exports.i18nString=函数(语言,stringID){ 试一试{ var dictionary=require(`./${language}.json`) if(Array.isArray(dictionary[stringID])){ 返回字典[stringID][Math.floor(Math.random()*字典[stringID].length)]; } 返回字典[stringID]; }捕获(错误){ } 返回“”; } JSON字典示例:Javascript需要缓存,javascript,caching,require,Javascript,Caching,Require,对于我正在设计的一个小型无状态API,我需要一个非常简单的i18n工具。我将用两种语言管理少于30个字符串,最多不超过 我决定编写一个非常简单的i18n工具: exports.i18nString=函数(语言,stringID){ 试一试{ var dictionary=require(`./${language}.json`) if(Array.isArray(dictionary[stringID])){ 返回字典[stringID][Math.floor(Math.random()*字典[
{
"example": "This is an example",
"multi": [
"Choice 1",
"Choice 2",
"Choice 3"
]
}
它工作得非常好,非常适合我的需要。但有一件事困扰着我:每次需要字符串时,我调用的函数中都会出现require
我是Js的初学者,但我知道require
会打开文件,读取其内容并对其进行评估。但我不知道Js是否足够聪明,可以将文件内容保存在缓存中以备后续调用。如果是这样,那么我的代码就可以了。如果不是,我可能会面临性能问题
你们能启发我吗?我在随机搜索时找到了答案 事情是这样的:Node.js会缓存每个文件,如下所述: 模块在第一次加载后被缓存。这意味着(除其他外)每个对
require('foo')
的调用都将返回完全相同的对象,如果它将解析为相同的文件。
如果未修改require.cache
,则多次调用require('foo')
不会导致多次执行模块代码