如何在 spawn/exec 带参数的子进程中 运行 mongodump 命令
How to run mongodump command in spawn/exec child process with arguments
我需要运行带有以下参数的 mongodump 命令
var dbhost = mongoose.connection.host || "127.0.0.1",
dbport = mongoose.connection.port,
dbname = mongoose.connection.name,
dbuser = mongoose.connection.options.user,
dbpass = mongoose.connection.options.pass,
backupPath = path,
date = new Date(),
currentDate = date.toLocaleString(),
backupFileName ='DBBACKUP-'+currentDate;
如何将上述变量传递给子进程
我试过下面的代码
var backupDB = spawn('mongodump --host '+dbhost+' --port '+dbport+' --username '+dbuser+' --password '+dbpass+' --db '+dbname+' --archive=backupFileName.gz --gzip');
backupDB.stdout.on('data',function(data){ console.log('stdout: ' + data);
它抛出了这个错误
error: uncaughtException: spawn mongodump --host 127.0.0.1 --port 27017 --username --password --db mydb --archive=backupFileName.gz --gzip ENOENT
根据 the fine manual,spawn()
获取命令的名称,一个参数数组 传递给该命令:
var backupDB = spawn('mongodump', [
'--host', dbhost,
'--port', dbport,
'--username', dbuser,
'--password', dbpass,
'--db', dbname,
'--archive=backupFileName.gz',
'--gzip'
]);
我试过了,效果很好
var backupDB = exec('mongodump --host='+dbhost+' --port='+dbport+' --username='+dbuser+' --password='+dbpass+' --db='+dbname+' --archive='+backupPathDir+'/'+backupFileName+'.gz --gzip');
backupDB.stdout.on('data',function(data){
console.log('stdout: ' + data);// process output will be displayed here
});
我需要运行带有以下参数的 mongodump 命令
var dbhost = mongoose.connection.host || "127.0.0.1",
dbport = mongoose.connection.port,
dbname = mongoose.connection.name,
dbuser = mongoose.connection.options.user,
dbpass = mongoose.connection.options.pass,
backupPath = path,
date = new Date(),
currentDate = date.toLocaleString(),
backupFileName ='DBBACKUP-'+currentDate;
如何将上述变量传递给子进程
我试过下面的代码
var backupDB = spawn('mongodump --host '+dbhost+' --port '+dbport+' --username '+dbuser+' --password '+dbpass+' --db '+dbname+' --archive=backupFileName.gz --gzip');
backupDB.stdout.on('data',function(data){ console.log('stdout: ' + data);
它抛出了这个错误
error: uncaughtException: spawn mongodump --host 127.0.0.1 --port 27017 --username --password --db mydb --archive=backupFileName.gz --gzip ENOENT
根据 the fine manual,spawn()
获取命令的名称,一个参数数组 传递给该命令:
var backupDB = spawn('mongodump', [
'--host', dbhost,
'--port', dbport,
'--username', dbuser,
'--password', dbpass,
'--db', dbname,
'--archive=backupFileName.gz',
'--gzip'
]);
我试过了,效果很好
var backupDB = exec('mongodump --host='+dbhost+' --port='+dbport+' --username='+dbuser+' --password='+dbpass+' --db='+dbname+' --archive='+backupPathDir+'/'+backupFileName+'.gz --gzip');
backupDB.stdout.on('data',function(data){
console.log('stdout: ' + data);// process output will be displayed here
});