javascript - Nodejs : Good practice to just use the index. js 导出?

标签 javascript node.js iojs

我看到一些我继承的代码的模式。每个目录都有自己的 JS 文件,但也有一个 index.js,它实际上从另一个或多个 JS 文件导出项目。

我认为这样做是为了让您可以准确地看到要导出的内容,因为主要导出在 index.js 中,而主要代码在另一个或多个 js 文件中。

这是正确的吗?这种模式叫什么?

我应该继续使用这种模式吗?

最佳答案

假设我有以下目录结构:

MyApp
├── app.js
├── test.js
├── package.json
├─┬ controllers
│ ├── index.js
│ ├── signIn.js
│ └── signOut.js
└─┬ views
  ├── index.js
  ├── signIn.js
  └── signOut.js

将以下代码放入 index.js 文件中...

// index.js
module.exports = {
  signIn: require('./signIn')
, signOut: require('./signOut')
};

...允许您require整个目录,例如...

// test.js
describe('controllers', () => {
  // ~/controllers/index.js
  const controllers = require('./controllers');

  it('performs a sign-in', () => {
    ...
  });
  it('performs a sign-out', () => {
    ...
  });
});

另一种方法是单独要求每个文件。

不需要在目录中包含 index.js。您可以在没有 index.js 的目录中 require 一个文件。

// app.js
const signOut = require('./controllers/signOut.js')

但是,随着应用程序的增长,它会变得乏味。我使用像 require-directory 这样的包因为在目录中输入每个文件也很乏味并且容易出错。

// index.js
module.exports = require('require-directory')(module);

/*

This yields the same result as:

module.exports = {
  signIn: require('./signIn')
, signOut: require('./signOut')
, ...
};

*/

关于javascript - Nodejs : Good practice to just use the index. js 导出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37417422/

相关文章:

javascript - jQuery 正则表达式错误匹配

javascript - 在 Node 中打开 PDF 时的错误处理

javascript - OpenAI gpt-3.5-turbo : Request failed with status code 400

javascript - 如何从时刻对象获取时区偏移量?

node.js - 从 iojs 升级到 nodejs v4.4.4 后,自签名 SSL 不起作用

javascript - Vuejs 观察者命令

c# - javascript 函数没有被调用

javascript - 在所有元素上应用 jquery 代码

javascript - 事件和函数之间的区别?

node.js - IBM Node 构建包中的 Node 4.x?