node.js - node.js 项目中的 index.js 用于什么?

标签 node.js libraries

除了要求目录中的所有文件( 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/

相关文章:

node.js - ffmpeg-concat 创建了近 80GB 的原始文件来合并 3 个视频,500 毫秒的淡入淡出,总大小约为 42MB。如何减少存储需求?

node.js - 无法全局安装最新版本的 Yeoman 和 Office 加载项的 Yeoman 生成器

javascript - 如何从具有多个数组的大对象中获取特定的键值

javascript - Chai spy 和异步调用不会调用一次

c++ - 带有类的库如何工作?

java - 从不同语言调用库函数

node.js - 运行 npm install 时下载意外文件

c - 如何让所有人都可以使用我的 API?

java - 在 Java 中使用和导入外部库/框架

python - 人们是否经常使用标准库之外的库?