繁体   English   中英

在.js模块可访问的nodejs中创建全局对象

[英]creating a global object in nodejs accessible by .js modules

我的nodejs项目需要不同的.js模块可访问的内存表。 某些模块将更新表,但所有模块之间的数据必须相同(某种程度上是内存数据库)。 因此,我需要一个真正的全局对象……而不是每个模块全局对象。 创建一个包含所有对象的common.js文件,然后在所有模块中都不需要它,因为数据对于相应模块而言是全局/本地的。 我已经看到了对nodejs全局的引用,其中global.myobject对于所有模块都是全局的,但是文档尚不清楚是否如此。 我看到的最后一次讨论是在2014年。有人能向我介绍当前的情况吗? 这个问题如何解决?

在node.js ..

如果您有一个名为common.js的模块,则如下所示。

'use strict';

var obj = {};
module.exports = obj;

然后在另一个模块中执行此操作

'use strict';
var c = require('./common');
c.test = 1234;

然后,稍后另一个模块执行此操作。

'use strict';
var c = require('./common');
console.log(c);
//output = { test: 1234 }

modejs中的模块只是另一个对象。 nodejs,缓存所有需求,因此将始终返回相同的对象。

Windows用户的一个陷阱,Windows文件名不区分大小写,因此,如果您确实需要require('Common'),然后又需要require('common'); 您将拥有同一模块的2个版本。 这是将所有模块名称保持小写的一个很好的理由。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM