首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何用NodeJS运行一个文件夹中的所有javascript文件?

如何用NodeJS运行一个文件夹中的所有javascript文件?
EN

Stack Overflow用户
提问于 2018-05-28 10:54:01
回答 1查看 5.4K关注 0票数 1

我希望有一个包含javascript文件的文件夹,并且能够以编程方式异步运行它们上的任何内容。例如:

代码语言:javascript
复制
async.each(folder_files, function(content, cb){
    run_script(content);

    cb();
},function(err){
    if(err){
        console.log(err);
    }else{
        console.log("All scripts ran succesfully :D");
    }
});

这有可能吗?

编辑:为了清楚起见,我希望能够使用任意数量的脚本更改文件夹内容,并通过主JS文件运行它们。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-28 13:48:55

这是一个使用 async 的简单解决方案,但是您需要将所有脚本放在主文件旁边的scripts文件夹中

代码语言:javascript
复制
const fs = require('fs')
const exec = require('child_process').exec

const async = require('async') // npm install async 

const scriptsFolder = './scripts/' // add your scripts to folder named scripts

const files = fs.readdirSync(scriptsFolder) // reading files from folders
const funcs = files.map(function(file) {
  return exec.bind(null, `node ${scriptsFolder}${file}`) // execute node command
})

function getResults(err, data) {
  if (err) {
    return console.log(err)
  }
  const results = data.map(function(lines){
    return lines.join('') // joining each script lines
  })
  console.log(results)
}

// to run your scipts in parallel use
async.parallel(funcs, getResults)

// to run your scipts in series use
async.series(funcs, getResults)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50558532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档