gpt4 book ai didi

javascript - Mean Stack - 使用 "Globals"模块会在运行 Web 应用程序时导致问题吗?

转载 作者:太空宇宙 更新时间:2023-11-04 02:06:42 25 4
gpt4 key购买 nike

我有一个变量(构造的文件名),需要从一个文件中的 API 中获取该变量,以便将其作为变量存储在另一个文件中。

按照我的代码设置方式,实际上没有一种方法(我能想到)可以在不使用全局变量的情况下将此变量从一个文件传递到另一个文件。我一直在研究几种不同的方法,并决定创建一个全局模块(globals.js):

var globals = {
'new_img': ''
}

module.exports = globals;

我写过:

var globals        = require('./public/js/globals');

在我的 server.js 和 paths.js 中,以便我的所有 API 和 Controller 都可以访问此模块。

当我提供此 Web 应用程序并且多个人拥有自己的网页实例时,他们都会使用相同的全局模块吗?这不是我想要的效果。有什么更好的方法来解决这个问题?

最佳答案

是的,他们将使用相同实例。

该模式是单例,您正在导出并使其成为全局变量,内存中的同一位置将被整个应用程序可见。

借助调试器,您可以深入分析 require 代码,并看到 Nodejs 会缓存该调用的结果并每次返回相同的实例。

NodeJS 源代码:

enter image description here enter image description here

如果您想要的结果是拥有不同的实例,您可以浅克隆该对象。

var globals  = _.extend({}, require('./public/js/globals')); //ecma5 + underscore.js

var globals = Object.assign({}, require('./public/js/globals')); //ecma6

关于javascript - Mean Stack - 使用 "Globals"模块会在运行 Web 应用程序时导致问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43982582/

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