nodejs中require的路径是一个文件夹时发生了什么

简介:

node中使用require的时候如果路径是一个文件夹时,或者特殊的情况require('..');require('.');


这是node实战这本书里说的情况,但是我在node6.9版本中发现不完全是这样,可能是后来做了修改。下面说说在6.9下require路径的过程。

这里以require('.')说明,一个点说明要require当前目录,这时候,node会优先查找package.json这个文件(即使有index.js这个文件也会先被忽略),然后查找package.json文件里的main键值对应的值xx.js,然后拿到这个值进行加载相应的文件,否则,如果没有键值main或者没有找到xx.js则开始查找当前目录下有没有index.js,如果有则使用,否则出错。下面是具体的实践:

以下文件都在一个文件夹下

example.js

var test = require('.');
console.log(test.a);

package.js

{
"main":"./test1.js"
}


test1.js

module.exports = {
a:1
}


index.js

module.exports = {
a:3
}

我们可以看到,执行example脚本时输出的是1,如果把main的项去掉或者把main对应的值改成不存在的文件,则会加载index.js,输出3,如果不存在这个index.js则报错


本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/7089408.html,如需转载请自行联系原作者

相关文章
|
JavaScript 前端开发 Linux
Node.js 获取文件信息及路径
Node.js 获取文件信息及路径
|
2月前
|
JavaScript
Node.js之文件夹的操作
Node.js之文件夹的操作
47 9
|
2月前
|
存储 JavaScript 前端开发
node静态文件加与不加虚拟路径
本文介绍了在Node.js中设置静态资源服务时,如何配置虚拟路径前缀。通过使用`express.static`中间件,可以指定一个虚拟前缀,使得访问静态文件时需要通过这个前缀来访问。
35 3
node静态文件加与不加虚拟路径
|
3月前
|
机器学习/深度学习 JavaScript
node.js实现遍历所有文件夹里面的js文件,提取所有的url
node.js实现遍历所有文件夹里面的js文件,提取所有的url
|
6月前
|
JavaScript API Windows
Nodejs 文件 与 路径 相关用法实例解析
Nodejs 文件 与 路径 相关用法实例解析
126 0
|
6月前
|
JavaScript 前端开发
node.js中path模块-路径处理,语法讲解
node.js中path模块-路径处理,语法讲解
|
6月前
|
JavaScript
用户安装nodejs设置路径打包项目
用户安装nodejs设置路径打包项目
94 1
|
6月前
|
JavaScript
node.js 删除某个目录下所有的文件夹
node.js 删除某个目录下所有的文件夹
129 0
|
6月前
|
JavaScript API
Node.js API实例讲解——FS 文件夹操作
Node.js API实例讲解——FS 文件夹操作
64 0
|
6月前
|
JavaScript
Node fs 创建多层文件夹
Node fs 创建多层文件夹
53 0