【发布时间】:2020-07-17 17:50:39
【问题描述】:
假设我有一个名为“pink.js”的模块。 该模块内部是以下代码:
var color = 'red+white'
module.exports = color
现在在另一个文件中,假设我们执行以下操作:
const pink = require('./pink')
console.log(pink) //Logs 'red+white'
然后假设我们想通过重新请求文件将pink.js 中color 的值更改为'red+blue',然后重新请求它。
const pink = require('./pink')
console.log(pink) //Logs 'red+white'
//Code to replace the value of color in pink.js to 'red+blue'
//Re-requiring:
const pink2 = require('./pink')
console.log(pink2) //Logs 'red+blue'
我该怎么做呢?
如果可能的话,我可以对 require.js 这样的实际模块执行此操作吗?
如何使用它的示例: 仅使用代码在本地修补模块中的简单问题。可能会自动执行该过程。
谢谢!
【问题讨论】:
-
首先,为什么您需要重新要求它?总之,每当模块的值发生变化时,您都将重新运行您的应用程序,并且这些值将是最新的。除此之外,如果您需要在 2 个不同的模块之间进行通信,您应该公开方法来这样做。您能否详细说明您的需求?
-
@DiogoLessa 这不是必需品,它更像是一种“可能”的事情。
-
答案是否定的。一旦您需要一个文件,除非您修改并重新运行您的应用程序,否则它将具有相同的值。这就是为什么我要问你是如何提出这个问题的。通常,每个模块都有自己的隔离范围。如果第一个模块返回一个字符串并且没有提供更改它的方法,则它只是一个只读值。只有重新要求不会改变任何事情。
-
@DiogoLessa 哦,好吧。如果您想将其作为答案,我会将其标记为已解决。谢谢你:)
标签: javascript node.js replace fs