2016-11-02 3 views
-2

내가노드 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" 

는 내가하려고했는데이 형식

내 몽고의 DB에 삽입 할이 내용으로 텍스트 파일을 DB를 몽고에 파일 삽입을 읽어 거의 모든 파일 판독기 패키지가 파일을 읽고 행 단위 편집을 허용하지 않을 수있는 노드 패키지를 찾을 수 있습니다. 예를 들어 다음 줄을 들여 쓰면 이전 줄과 병합해야합니다.

+0

당신의 사양. –

+0

@VinceBowdrendo 텍스트 파일을 분석하고 라인 편집을 허용 할 수있는 모듈을 알고 있습니까? –

답변

-1

이것은 두 단계 프로세스입니다. 첫 번째 파일이 파싱됩니다. 어떤 공통 표준 (내가 알고있는)에있는 것처럼 보이지 않으므로 직접 작성해야 할 것입니다.

두 번째 부분은 mongodb에 파일을 쓰는 것입니다. 이것은 별개의 문제이지만, 문서를 읽는다면 매우 간단합니다. 이 일을 시도한 다음 문제가 있으면 다시 물어볼 것을 권합니다. 편집

: 여기 는 JS 개체를 구문 분석 파일입니다 : 당신이 당 JSON으로 텍스트 데이터 및 구조 조정을 분석하는 코드를 작성해야한다고 생각 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