gpt4 book ai didi

javascript - Node.JS 中的热交换。可能的?

转载 作者:行者123 更新时间:2023-12-01 15:04:30 25 4
gpt4 key购买 nike

是否可以实现或至少模拟代码hot swapping在 Node.JS 中?如果是,如何?

Hot swapping (frequently called hot plugging) is replacing or adding components without stopping or shutting down the system. Erlang and Lisp support hot swapping natively.

最佳答案

对于 commonjs 模块(原始 node.js 模块系统),您可以通过删除其缓存并重新要求它们来热交换模块:

delete require.cache[require.resolve('my-module')];
require('my-module');
我不确定这是否适用于 es6 模块。
当然,这需要在模块加载的任何地方完成,因为否则您的代码将使用仍然在 RAM 中的先前版本的模块返回的对象和函数。
触发级联重新加载的一种方法是使您的主代码也成为由需要它的简单脚本执行的模块。然后重新加载你的主模块会导致它重新加载它使用的其他模块。
您可能不需要热插拔
然而,在实际实践中,您可能会发现您实际上并不需要热插拔。大多数 node.js 服务器需要几毫秒才能启动。部分原因是 node.js 中的大多数 I/O 库都懒惰地连接到外部服务。 Node.js 服务器通常不会在执行其余代码之前等待数据库连接成功。相反,它会在您第一次发出数据库请求时尝试连接到数据库。
此外,javascript 是一种快速解析和编译的语言(因为您将源代码发送到网页是必要的)

关于javascript - Node.JS 中的热交换。可能的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48038891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com