【发布时间】:2018-01-18 14:07:45
【问题描述】:
你好你怎么看这种方式,导入我所有以Handler.js结尾的文件(目录),然后全部导出
Screen of the folder where the files are
index.js:
const {join} = require('path')
const {readdirSync, readFileSync, lstatSync} = require('fs')
const handlersPath = readdirSync(__dirname)
.filter(fileName => /Handler.(js)$/.test(fileName))
.filter(fileName => !lstatSync(fileName).isDirectory())
for (const handlerPath of handlersPath){
const handlerName = /^(.*?)\Handler.js/.exec(handlerPath)[1]
exports[handlerName] = require(join(__dirname, handlerPath))
}
【问题讨论】:
-
但是为什么呢?我的意思是,你真的懒得不一一要求,就在需要的时候?但无论如何,这个问题太笼统了。如果它不产生错误,那么是的,它是正确的......?它会产生想要的行为吗?如果不是,请解释。
-
不,我一点也不懒
-
使用
sync函数是一种反模式。它阻止所有异步功能。 nodejs.org/en/docs/guides/blocking-vs-non-blocking -
index.js 文件是一次导入器,并且仅在启动时(服务器初始化)
-
@Adam yer,但在这个用例中,这似乎是正确的做法。
标签: javascript node.js fs