【问题标题】:How to run mongodump command in spawn/exec child process with arguments如何使用参数在 spawn/exec 子进程中运行 mongodump 命令
【发布时间】:2017-05-30 04:23:59
【问题描述】:

我需要使用以下参数运行 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 

【问题讨论】:

  • 你不能只将值插入字符串吗?
  • 但是说真的,请看这里Template Literals

标签: node.js mongodb shell child-process mongodump


【解决方案1】:

根据the fine manualspawn() 采用命令的名称,以及 一个数组 参数传递给该命令:

var backupDB = spawn('mongodump', [
  '--host',     dbhost,
  '--port',     dbport,
  '--username', dbuser,
  '--password', dbpass,
  '--db',       dbname,
  '--archive=backupFileName.gz',
  '--gzip'
]);

【讨论】:

    【解决方案2】:

    我试过了,效果很好

    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
                });
    

    【讨论】:

      猜你喜欢
      • 2022-10-07
      • 2020-01-24
      • 2016-05-31
      • 1970-01-01
      • 2012-11-08
      • 2020-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多