2015-04-07 26 views
3

在很多博客和文章中,我看到过相同的模式。在当我们用require() node.js中,我们使用以下命令:为什么使用require'./foldername/filename'需要'foldername/filename'?

var routes = require('./routes/index'); 
var users = require('./routes/users'); 

在图像中可以看到,对于routesusers正在使用这个成语。

有人可以解释我为什么使用./

谢谢。

enter image description here

+3

如果哟你使用'var routes = require('routes/index');'节点尝试从'node_modules/routes/index'(大多数情况下)读取模块。 '。/'表示这个文件的当前目录。 –

+0

Thanks @SLonoed这是非常有用的 –

回答

1

因为这只是它是如何

阅读module documentation

节点确定它是否是一个相对路径或模块的名称/组件,没有万能的方法。

为了更清楚些节点到位加载文件和模块

  • 文件非常明确的约定都装有明确的路径,如"./foo""../../bar",或者"/path/to/foo"

  • 模块被加载通过名称/标识符如"foo""foo/bar"

+0

所有这一切意味着模块是已知/编目的应用程序和文件路径不是。 –

+0

@JohnPeters模块不是“已知/编目”的,查找在文档中有非常明确的描述。 – naomik