nodejs的模块赋值,全局变量

nodejs如何永久改变模块里面的属性类似引用传递,
一个js文件require后赋值改属性,其他js require后直接就是新的值。
实际想要的就是一个全局变量,但是可以在任意时候改变,改变后其他文件引用则是改变的值

阅读 4.9k
2 个回答

新建global.js

const GLOABL_DATA = {}

function set(key, value) {
    GLOABL_DATA[key] = value
}

function get(key) {
    return GLOABL_DATA[key]
}

module.exports = {
    set,
    get
}

这样就可以通过引入global.js来控制全局变量
例如 demo.js

var global = require('global')
global.set('key1', 'value1')
console.log(global.get('key1')) // value1

global.set('key1', 'value2')
console.log(global.get('key1')) // value2

了解下设计模式中的单例模式

class Foo {
  constructor ({name, age} = {name: 'foo', age: 0}) {
    this.name = name
    this.age = age
  }
}

module.exports = new Foo()

你在任何文件中改变了name,和age,其他文件中的值都会改变

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题