Здесь я собираюсь создать резервную копию моей базы данных MongoDB Atlas в моем проекте MERN . Я использую приведенный ниже код для резервного копирования, но это сообщение отображается, когда я запускаю сервер express. Сначала создайте mongodb_backup. js, cron. js и потребуйте файл server. js. Все они работают нормально. И еще одно, это правильный URL-адрес для dbOptions.host.
mongodb_backup. js
var fs = require('fs');
var _ = require('lodash');
var exec = require('child_process').exec;
const path = require('path');
const backupDirPath = path.join(__dirname, 'database-backup/');
var dbOptions = {
user: '****',
pass: '****',
host: 'mongodb+srv://cluster0-gtick.mongodb.net/test?retryWrites=true&w=majority',
port: 27017,
database: 'Project-Management',
autoBackup: true,
removeOldBackup: true,
keepLastDaysBackup: 2,
autoBackupPath: backupDirPath
};
exports.stringToDate = dateString => {
-------------------- all works fine
};
exports.empty = mixedVar => {
------------------------all works fine
};
// Auto backup function
exports.dbAutoBackUp = () => {
if (dbOptions.autoBackup == true) {
let date = new Date();
let beforeDate, oldBackupDir, oldBackupPath;
currentDate = this.stringToDate(date);
let newBackupDir = ------;
let newBackupPath = dbOptions.autoBackupPath + '-mongodump-' + newBackupDir;
if (dbOptions.removeOldBackup == true) {
-------------all works fine
}
// Command for mongodb dump process
let cmd =
'mongodump --host ' +
dbOptions.host +
' --port ' +
dbOptions.port +
' --db ' +
dbOptions.database +
' --username ' +
dbOptions.user +
' --password ' +
dbOptions.pass +
' --out ' +
newBackupPath;
exec(cmd, (error, stdout, stderr) => {
if (this.empty(error)) {
// check for remove old backup after keeping # of days given in configuration.
if (dbOptions.removeOldBackup == true) {
if (fs.existsSync(oldBackupPath)) {
exec('rm -rf ' + oldBackupPath, err => { });
}
}
}
else{
console.log(stderr); //here consoling the error
}
});
}
};