2016-09-18 5 views
1

각 항목에 대해 함수를 호출하려고하는 항목 목록이 있습니다. 각 줄에는 이름과 가격이 있으며 함수의 변수로 설정하려고합니다.txt 파일의 각 행에 노드 기능 실행

항목을 통해 나열 할 수 있지만 개별적으로 함수를 호출 할 수는 없습니다. 이것은 내가 가지고있는 것이지만 그것을 이해할 수 없다. 감사!

var readline = require('readline'); 
var rl = readline.createInterface({ 
     input : fs.createReadStream('./items/item.txt'), 
     output: process.stdout, 
     terminal: false 
}) 
rl.on('line',function(line){ 
    console.log(line) //or parse line 
    for(i in line){ 
     //do action! 

    } 
}) 
+1

음, [당신이 무슨 생각을하지 않는다]의-에서 아마 루프 (https : //로 개발 .mozilla.org/ko-US/docs/웹/자바 스크립트/참조/문/for ...). 객체의 속성을 반복합니다. – Li357

답변

0
for(i in line){ 
    //pass 
} 
당신의 선이 foobar 1.23 같은 포맷하는 경우, 당신은 공간

rl.on('line', function(line){ 

    var item = line.split(' '); 
    var itemName = item[0]; 
    var itemPrice = item[1]; 
    doAction(itemName, itemPrice); 
}) 

에 폭발하거나 캡처 그룹

와 정규식을 사용 할 수 있습니다이 줄

에 대한 문자열의

반환 문자

또는 다른 형식을 사용할 수도 있습니다. JSON

같은 모든 라인 은
+0

답장을 보내 주셔서 감사합니다.하지만 doAction()을 한 번에 처리하지 않는 이유는 무엇입니까? 그것은 일종의 루프 일 필요가 없다? – hahu

+0

에'on ('line '', 콜백은 파일의 각 줄마다 호출됩니다 – hex7c0

0
이에 시도 할 수

소룡은 다음과 그것을 시도 할 수 있습니다 :

const items = fs.readFileSync(path.join(__dirname, file), 'utf-8').split('\n'); 

items.forEach((item) => { 
    // do your action 
    let name = item.split('--')[0]; 
    let price = item.split('--')[1] 
}) 
관련 문제