簡體   English   中英

node.js需要文件夾中的所有文件

[英]node.js require all files in a folder

我的文件夾中有一個項目,其中包含.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
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM