node_module文件夹
┣ app.js
│result.js
│┣ round.js
│┣ rectangle.js
│┣ index.js
//app.js var result = require("./result"); console.log(result.round.area(5)); console.log(result.rectangle.area(5,2)); //index.js var rectangle = require("./rectangle.js"); var round = require("./round.js"); exports.round = round; exports.rectangle = rectangle;
如果我们require()没有.js后缀,此时NodeJS会认为我们在引入一个文件夹,并且执行这个文件夹内部的index.js
var result = require("./result"); 等价于下面的 var result = require("./result/index.js");
注意的是不能省略./
node_modules文件夹
NodeJS中,如果文件夹内部存放了node_modules文件夹,此时内部的文件引入的时候就不用写./了
┣ app.js
│node_modules
││result.js
││┣ round.js
││┣ rectangle.js
││┣ index.js
此时result文件夹被一个node_modules文件夹包裹了,此时我们引入时候也发生了变化
var result = require("result"); console.log(result.round.area(5)); console.log(result.rectangle.area(5,2));
总结,如果我们使用require去引入文件,不加./是引入node_modules文件夹内部的文件,否则就是本地其他文件
require内容 |
引用地址 |
require("./result.js") |
同目录下面的result.js |
require("./result ") |
同目录下面的result文件夹内部的index.js |
require("result") |
node_modules文件夹内部的result文件夹内部的index.js |
require("result.js") |
node_modules文件夹内部的result.js |