Nodejs中的需求规则

最近即时通讯工作在新的Nodejs项目,并find这样的代码:

function a(){ var http = require('http'); var fs = require('fs'); } function b(){ var path = require('path'); var http = require('http'); } function c(){ var fs = require('fs'); } 

所以我有这样的编码一些问题:

  • 是需要有一些使用它的规则?
  • 在代码之上使用rquire,或者当我们需要调用它的时候,它是不错的select。
  • 这样的编码会造成冲突

什么时候打电话的一些规则require

  • 默认情况下,在文件开始时全局需要一个模块,并且不要重新分配被分配了require的结果的variables。

  • 如果需要一个模块被certificate会显着影响性能(也许它有初始化例程需要很长时间才能运行),并且不会在整个文件中使用,那么在需要它的函数内部需要它。

  • 如果模块的名称必须在函数中计算,则在本地加载。

如果您在问题中显示的代码全部在一个文件中,并且打算在生产中使用,那么我会要求编码人员以这种方式require生产,并且如果有充分的理由,不能公式化,我会告诉这个编码器将require调用移动到文件的开头。

你绝对应该避免这些在生产。 模块caching的确如此,所以只有在初始调用require才会影响性能,但仍然可以。 另外fshttppath也是内置模块,所以require它们不涉及从磁盘读取,只是代码编译和执行,但是如果你使用非内置模块,你也将阻塞事件循环的时间从磁盘读取。

一般来说,如果使用任何syncfunction(包括require ,则应该仅在第一次打勾期间使用它们,因为无论如何还没有服务器正在侦听。

Manning出版物有一本关于节点的好书,叫做Node.js,这是节点的模块需要规则描述它的方式。
在这里输入图像描述