除了要求目录中的所有文件( node.js require all files in a folder? )的好方法之外,index.js
主要用于什么?
最佳答案
当您将文件夹传递给 Node 的 require() 时,它将检查端点的 package.json。如果没有定义,它会检查 index.js,最后检查 index.node(一种 c++ 扩展格式)。所以 index.js 很可能是需要模块的入口点。
在此处查看官方文档:http://nodejs.org/api/modules.html#modules_folders_as_modules .
另外,您问如何要求目录中的所有文件。通常,您需要一个带有 index.js 的目录,该目录向这些文件公开一些封装的接口(interface);执行此操作的方式将因模块而异。但是假设您想在包含文件夹时包含文件夹的内容(请注意,这不是最佳实践,并且出现的频率比您想象的要少)。然后,您可以使用 index.js 同步加载目录中的所有文件(异步设置导出通常会导致可怕的错误)并将它们附加到 module.exports,如下所示:
var path = require('path'),
dir = require('fs').readdirSync(__dirname + path.sep);
dir.forEach(function(filename){
if(path.extname(filename) === '.js' && filename !== 'index.js'){
var exportAsName = path.basename(filename);
module.exports[exportAsName] = require( path.join( __dirname, filename) );
}
});
虽然我几乎没有看到有人想要使用这种模式 - 大多数时候你希望你的 index.js 像
var part1 = require('./something-in-the-directory'),
part2 = require('./something-else');
....
module.exports = myCoolInterfaceThatUsesPart1AndPart2UnderTheHood;
关于node.js - node.js 项目中的 index.js 用于什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21063587/