导入模块javascript node.js的正确方法是什么

时间:2017-04-17 14:18:47

标签: javascript node.js

我对如何在我的节点项目中导入模块感到有些困惑。我看到有两种方法可行,但正确的方法是什么;或者有任何区别吗? 我指的是我导入的模块至少是一个目录的情况。

#p>方式#1:

List<Object[]> result = (List<Object[]>) query.list();
 for(Object[] current : result ){
     Integer userId = (String)current[0];
     Float rating = (Float) current[1];
     .....
 }

方式#2:

const myModule = require('../myModule');

另外,我看到一些导入是使用文件扩展名完成的,而其他导入则不是。什么是正确的方法?

const myModule = require('./../myModule');

const myModule = require('./myModule');

非常感谢任何反馈。

1 个答案:

答案 0 :(得分:2)

结果没有区别,两者都有效。第二个是不必要的冗长(这在很大程度上是无害的,但我不会使用./../myModule.js)。 modules documentation说:

  

前缀为'/'的必需模块是文件的绝对路径。例如,require('/home/marco/foo.js')会将文件加载到/home/marco/foo.js

     

前缀为'./'的必需模块与调用require()的文件相关。也就是说,circle.js必须与foo.js require('./circle')位于同一目录中才能找到它。

     

如果没有前导'/''./''../'来指示文件,模块必须是核心模块或从node_modules文件夹加载。

重新编辑:

  

另外,我看到一些导入是使用文件扩展名完成的,而其他导入则不是。什么是正确的方法?

同样的文档在前面引用的上面解决了这个问题:

  

如果找不到确切的文件名,Node.js将尝试使用添加的扩展程序加载所需的文件名:.js.json,最后.node

     

.js个文件被解释为JavaScript文本文件,.json个文件被解析为JSON文本文件。 .node个文件被解释为使用dlopen加载的已编译的插件模块。