Написал для себя небольшой скрипт:
// Модуль для работы с файлом конфигурации
var config = require('../server/config');
// Модуль для работы с ФС
var fs = require('fs');
// Модуль для работы с MongoDB
var mongoose = require('mongoose');
var myArgs = require('minimist')(process.argv.slice(2));
var help = [
'Чтобы импортировать файл команда должна иметь следующий формат:\n',
'-h[--help] - вывод справки\n',
'[*] -f[--file] - путь к файлу импорта\n',
'[*] -m[--model] - имя модели, в которую нужно произвести импорт\n',
'-l[--log] - выводить лог импорта в консоль\n',
'Пример правильной команды:\n',
'node ./migrate/index.js --file ./migrate/data/keeper.json --model Keeper'
].join(" ");
if (myArgs.h || myArgs.help || Object.keys(myArgs).length === 1) {
console.log(help);
process.exit(0);
}
if (myArgs.file || myArgs.f) {
var filename = myArgs.file || myArgs.f;
}
else{
console.log("Не указан файл для импорта! Используйте параметр --help для справки!");
process.exit(0);
}
if (myArgs.model || myArgs.m) {
var modelname = myArgs.model || myArgs.m;
}
else{
console.log("Не указана модель для импорта! Используйте параметр --help для справки!");
process.exit(0);
}
// Подсоединяемся к БД
var db_conn_string = config.get('db:uri') + ':' + config.get('db:port') + '/' + config.get('db:name');
mongoose.connect(db_conn_string);
// Подключаем модели БД
var models = require('../server/models');
if(!models[modelname]){
console.log("Модель "+modelname+" не найдена!");
process.exit(0);
}
var importJson = fs.readFile(filename, 'utf-8', function(err, data){
if(err){
console.log(err);
console.log("Не удалось прочитать файл "+filename+"!");
process.exit(0);
}
var counter = 0;
data = JSON.parse(data);
data.forEach(function(saveObject, i, arr){
var SAVE = new models[modelname](saveObject);
SAVE
.save(saveObject, function(err, data){
if(err){
console.log(err);
console.log("Не удалось импортировать запись №%d!", i+1);
if(myArgs.log || myArgs.l){
console.log("ERROR: %d - неудача", i+1);
}
}
else{
counter++;
if(myArgs.log || myArgs.l){
console.log("SUCCESS: %d - успешно", i+1);
}
}
});
});
console.log("Успешно импортировано записей: %d из %d", counter, data.length);
mongoose.connection.close();
process.exit(0);
});
В итоге без ошибок выдает строку:
Успешно импортировано записей: 0 из 26
Импорта не происходит. ЧЯДНТ? Во всем остальном проекте запись в БД идет именно так и все работает, а тут видите ли не нравится что-то...