2016-11-02 4 views
-2

У меня есть текстовый файл с таким содержимымNode JS чтения вставки файла Монго дб

title: A, alert: notice, desc: Starting 
title: B, alert: notice, desc: Process Step 1 and 2 
Step 1 - Execute 
Step 2 - Log 
title: C, alert: notice, desc: "Ending" 

Я хочу, чтобы вставить его в мой Монго дб с этим форматом

я пытался найти пакеты узлов, которые могли бы помочь, но почти все файлы для чтения файлов могут читать только файл и не допускать редактирования строк за строкой. Например, если следующая строка имеет отступ, она должна слиться с предыдущей строкой.

+0

Я думаю, вам нужно написать код для анализа текстовых данных и реструктурировать его в формат JSON в соответствии с вашими Спецификация. –

+0

@ VinceBowdrendo вы знаете какой-либо модуль, который мог бы помочь проанализировать текстовый файл и разрешить редактирование каждой строки? –

ответ

-1

Это будет двухэтапный процесс. Первый будет обрабатывать ваш файл. Кажется, что он не соответствует ни одному стандарту (что я знаю), поэтому вам, вероятно, придется самому написать это.

Вторая часть будет записывать файлы в mongodb. Это отдельная проблема, хотя, если вы следуете документации, это довольно просто. Я предлагаю вам попробовать эти вещи, а затем снова спросить, есть ли у вас какие-либо проблемы.

Edit: Вот файл анализируется на объект JS: https://jsfiddle.net/cyksd7o3/

var fileInput = 'title: A, alert: notice, desc: Starting\ntitle: B, alert: notice, desc: Process Step 1 and 2 Step 1 - Execute Step 2 - Log \ntitle: C, alert: notice, desc: "Ending"'; 
 

 
var parseFile = function(input){ 
 
\t \t var rows = input.split('\n'); 
 
    var returnObj = []; 
 
    for (var i=0; i < rows.length; i++){ 
 
    \t \t var currRow = rows[i]; 
 
     returnObj.push(getDataObject(currRow)); 
 
    } 
 
    return returnObj; 
 
}; 
 

 
var getDataObject = function(inputRowString){ 
 
\t \t var newObject = {}; 
 
\t \t var propSplit = inputRowString.split(','); 
 
    for (var i = 0; i < propSplit.length; i++){ 
 
    \t \t var currSplit = propSplit[i]; 
 
     var keyValue = currSplit.split(':'); 
 
     newObject[keyValue[0].replace(/\s/g,'')] = keyValue[1]; 
 
    } 
 
    return newObject; 
 
}; 
 

 
console.dir(parseFile(fileInput));

+0

Этот код работает только в том случае, если каждая строка является новым объектом, который нужно вставить в mongo db ... Но как видно в текстовом файле примера, у меня есть две строки (Шаг 1 - Выполнить Шаг 2 - Журнал) , который должен быть часть второго объекта Если я использую ваш код, это приведет к ошибке, потому что он будет читать 3-ю и 4-ю строки в качестве новых объектов –

+0

@JuanCarlosCabotaje, возможно, вы могли бы дать некоторое представление о том, как вы хотите отделить строки данных, в этом случае? – OliverRadini

Смежные вопросы