NodeJS如何在多用户环境中处理基元和对象?
我在客户端使用Javascript。 所以如果我有这个:
var myNumber = 10;
客户端的浏览器容易理解这个variables。
然而,在nodeJS中,代码为多个用户运行,我对这个工作原理的理解并不完整。 例如,在这个简化的代码中:
var parser = require('./parser'); api.on('message', function (messageJson) { var myNumber = 10; parser.parse(messageJson); });
据我了解,“myNumber”variables仍然是每个调用,因为它在每个执行单独运行的“api.on”方法的范围内。 但是,“parsing器”对象呢? 是所有进程可用的相同实例吗?
当我像这样运行时是否有区别:
api.on('message', function (messageJson) { var parser = require('./parser'); var myNumber = 10; parser.parse(messageJson); });
如果我像这样运行,并且有区别,我现在可以在“parsing器”模块的范围内使用“全局”variables,这对每次执行都会有所不同吗?
每次运行
require
都有什么不同吗? 现在我可以在“parsing器”模块的范围内使用“全局”variables吗?
不,没有区别。 Node不会caching模块,无论你require('parser')
多less次require('parser')
你总是会得到相同的对象(当然,除非你混淆了模块caching)。