我看到一些我继承的代码的模式。每个目录都有自己的 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/