Node.js 将全局变量注入节点上下文

Node.js 将全局变量注入节点上下文,node.js,Node.js,我是否可以向节点上下文中注入一个全局变量,比如html脚本中的“document”,任何javascript文件都可以访问该变量,而不需要导入或需要它 //var document = require('document') // i don't need to require it by myself document.findById('111') 要在node.js中创建一个全局节点,可以将其指定给global对象 // define global global.myGlobal = 3

我是否可以向节点上下文中注入一个全局变量,比如html脚本中的“document”,任何javascript文件都可以访问该变量,而不需要导入或需要它

//var document = require('document') // i don't need to require it by myself
document.findById('111')

要在node.js中创建一个全局节点,可以将其指定给
global
对象

// define global
global.myGlobal = 3;

// then use it anywhere
console.log(myGlobal);
这是一篇关于模块级变量和全局变量的好文章:

仅供参考,node.js模块架构使您完全不需要使用globals。您只需在共享模块中
require()
,即可共享变量。如果您是node.js新手,这可能看起来有点奇怪,效率也有点低,但您会习惯它,这是在node.js中开发的首选方法,因为它带来了模块化、可测试性和健壮的代码


这里有一篇有趣的文章:。

我所做的就像一个js在线判断系统,以前的实现是基于node vm模块的,但现在一个新的需求调试器即将出现。所以我想切换到使用节点。我的问题是以前的实现在所有执行上下文(如html中的文档)中注入一些全局变量,这样就不需要显式地要求它。我想在我的节点实现中遵循此规则。如果不可能,可能我需要更改规则,然后切换到node.js的运行方式。@ChenYang-我向您展示了如果您真的愿意,如何制作globals。这并不难——这是可能的。我建议不要使用globals,因为上面提到的关于这个主题的文章中有各种原因。对不起,我没有清楚地描述我的问题,我想要的全局变量是自动注入到用户(我们的系统用户,他们编写脚本)的脚本中的。用户不需要写“global.myGlobal=3;”@ChenYang——我解释了如何在node.js中创建全局变量。你要么这样做,要么不使用globals。你的选择。让用户编写脚本将全局变量注入服务器的全局名称空间对我来说简直是一团糟。