我正在考虑使用Socket.IO从.NET移植非常需要的(大量通信)基于套接字的体系结构到Node.JS。
我当前的系统是用.NET开发的,并且使用一些脚本语言,这些语言在运行时加载,因此,如果需要,可以通过向服务器发出重新加载命令来进行热修复,而不必重新启动其他服务器/调度程序。
我最初是以这种方式构建的,因此,正如我所说,我可以根据需要进行热修复,并通过透明的修复使系统可用。
我是Node.JS的新手,但这是我要完成的工作:
最好的解决方案是什么?如何从运行时作为字符串加载的javascript文件中调用特定函数?我可以像需要一样以正常方式加载javascript文件,将其存储在变量中并调用函数吗?
谢谢!
如果我正确理解您的问题。您可以检出vm模块。
或者,如果您希望能够重新加载required
文件,则必须清除缓存并重新加载文件,此软件包可以这样做。检查代码,您会明白的。
第一次加载模块后将对其进行缓存。这意味着(除其他事项外)每次对require('foo')的调用都将获得完全相同的返回对象,如果它将解析为同一文件。
多次调用require('foo')可能不会导致模块代码多次执行。这是一个重要功能。使用它,可以返回“部分完成”的对象,从而即使在可能导致循环的情况下,也可以加载传递依赖。
在这里可以找到更多信息。
删除缓存的模块:
delete require.cache[require.resolve('./mymodule.js')]
再次要求它。(也许是require
您可以调用的函数内部)
更新
我认识的人正在实施类似的方法。您可以在此处找到代码。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句