Node JS读取文件插入到mongo db

时间:2016-11-02 09:06:44

标签: javascript node.js mongodb npm filereader

我有一个包含此内容的文本文件

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"

我想用这种格式将它插入我的mongo db

{
 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
},

我一直在努力寻找可以提供帮助的节点包,但几乎所有的文件阅读器包都只能读取文件而不允许逐行编辑。 例如,如果下一行是缩进的,它应该与前一行合并。

1 个答案:

答案 0 :(得分:-1)

这将是一个两步过程。第一个是解析你的文件。它似乎没有任何通用标准(我都知道),因此您可能需要自己编写。

第二部分是将文件写入mongodb。这是一个单独的问题,但如果您按照文档进行操作则相当简单。我建议你试试这些东西然后再问一下你是否有任何问题。

编辑: 这是解析为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){
		var rows = input.split('\n');
    var returnObj = [];
    for (var i=0; i < rows.length; i++){
    		var currRow = rows[i];
        returnObj.push(getDataObject(currRow));
    }
    return returnObj;
};

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

console.dir(parseFile(fileInput));
&#13;
&#13;
&#13;

相关问题