我的文件夹中有一个项目,其中包含 .js 文件,每个文件都包含 exports.handler = {...}
。
现在在我的 index.js 中我需要它们并像这样使用它们:
const Alexa = require('ask-sdk-core');
const skillBuilder = Alexa.SkillBuilders.custom();
exports.handler = skillBuilder
.addRequestHandlers(
require('./handler/Random').handler,
require('./handler/Repeat').handler,
require('./handler/LaunchRequest').handler,
require('./handler/Help').handler,
require('./handler/Exit').handler,
require('./handler/SessionEndedRequest').handler
)
.lambda()
我计划创建更多这样的处理程序,并且想知道是否有一种方法可以循环“./handler”中的所有文件并将它们全部添加。可以为每个处理程序单独调用 addRequestHandlers
,并且顺序无关紧要。
最佳答案
是的,有一种方法可以循环遍历 ./handlers
目录(或任何目录)中的所有文件。这是通过 fs.readdir
完成的功能:
const Alexa = require('ask-sdk-core');
const skillBuilder = Alexa.SkillBuilders.custom();
const fs = require('fs');
var handler = skillBuilder;
var handlerDir = './handlers/';
// Iterate over handlers in that directory
try {
var files = fs.readdirSync(handlerDir);
for(var i in files) {
if(files[i].endsWith('.js')) {
// This is a JavaScript file
handler = handler
.addRequestHandlers(
require(handlerDir + files[i]).handler
);
}
};
exports.handler = handler.lambda();
} catch(err) {
// Handle errors here
}
关于javascript - node.js 需要文件夹中的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56100108/