Bob*_*ion 1 javascript node.js
我想要一个包含 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");
}
});
Run Code Online (Sandbox Code Playgroud)
这可能吗?
编辑:为了澄清,我希望能够使用任意数量的脚本更改文件夹内容并通过主 JS 文件运行它们。
这是一个简单的解决方案,但您需要将所有脚本放在主文件旁边的文件夹中 async scripts
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8273 次 |
| 最近记录: |