Windows 节点正在为每个js文件运行一个exec
节点每个Js文件只运行一个Exec子进程 有没有办法在一个Js文件中运行多个exec命令? 在异步系列函数中,我执行命令后exec停止, 如何在不退出项目的情况下执行所有三个exec函数 这就是我尝试过的:Windows 节点正在为每个js文件运行一个exec,windows,node.js,exec,child-process,Windows,Node.js,Exec,Child Process,节点每个Js文件只运行一个Exec子进程 有没有办法在一个Js文件中运行多个exec命令? 在异步系列函数中,我执行命令后exec停止, 如何在不退出项目的情况下执行所有三个exec函数 这就是我尝试过的: var exec = require('child_process').exec; var fs = require('fs'); var async = require('async'); var find = /regex/; async.series({ one:functio
var exec = require('child_process').exec;
var fs = require('fs');
var async = require('async');
var find = /regex/;
async.series({
one:function(callback){
exec('git ls-remote',{maxBuffer: 1024 * 500}, function(error, stdout, stderr) {
fs.writeFile(__dirname+'/idsandDates.txt',stdout, function (err) {
if (err) throw err;
//console.log(stdout);
});
console.log('stderr Here: ' + stderr);
if (error !== null) {
console.log('exec error Here: ' + error);
callback(null,1);
}
});
}
,
two:function(callback){
var LineByLineReader = require('line-by-line'),
lr = new LineByLineReader('idsandDates.txt');
var commitId;
lr.on('error', function (err) {
// 'err' contains error object
});
lr.on('line', function (line) {
if(line.search(find)>0){
commitId = line.split("\t")[0];
}
});
lr.on('end', function () {
console.log('hello');
exec('git show -s'+commitId,{maxBuffer: 1024 * 500}, function(error, stdout,stderr) {
fs.writeFile(__dirname+'/commitDateFile.txt',stdout, function (err) {
if (err) throw err;
console.log(stdout);
});
callback(null,2);
});
});
}
,
three:function(callback){
var find = /Date:/;
var LineByLineReader = require('line-by-line'),
lr = new LineByLineReader('commitDateFile.txt');
var commitDate;
var i = 1;
lr.on('error', function (err) {
// 'err' contains error object
});
lr.on('line', function (line) {
if(i==3){
commitDate= line.slice(5,line.length).trim();
}
i++;
});
lr.on('end', function(){
var date = new Date(commitDate);//--since='+trueDate+'--name-only --pretty=format:
var trueDate = date.getFullYear()+'-'+date.getMonth()+'-'+date.getDay();
console.log(trueDate);
var exec = require('child_process').exec;
exec('git log --since='+trueDate+' --name-only --pretty=format:',{maxBuffer: 1024 * 500}, function(error, stdout, stderr) {
fs.writeFile(__dirname+'/modiiedJs.txt',stdout, function (err) {
if (err) throw err;
console.log(stdout);
});
console.log('stderr her1: ' + stderr);
if (error !== null) {
console.log('exec error Here2: ' + error);
callback(null,3);
}
});
});
}
},
function(err, results) {
console.log(results);
}
);
更新:
哎,,
我已经解决了使用'q'执行多个exec的问题
使用承诺和方法的节点框架
非常感谢那些试图解决我的问题的人:
快乐编码: