2017-05-30 39 views
0

我需要用下面的參數如何在產卵運行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; 

運行mongodump命令如何通過上述變量子進程

我下面試圖/ EXEC子進程代碼

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 
+0

你能不能把值插入字符串? –

+0

但真的,只是在這裏閱讀[模板文字](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Template_literals) –

回答

1

the fine manualspawn()取名字的命令,並參數數組傳遞給該命令:

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

謝謝你這個作品 – Srinivas

0

我已經試過這和它完美的作品

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