2014-11-08 6 views
0

내가 무료 -m (리눅스 쉘 명령)을 얻을 아래 소스 코드를 사용하여 변수 에 그 결과를 저장하려면 : 변수에 process.stdout 저장할 수있는 방법이 있나요(Node.js) stdout.pipe를 변수에 저장하는 방법은 무엇입니까?

var spawn = require('child_process').spawn, 
    command = spawn('free', ['-m']); 
command.stdout.pipe(process.stdout); 

를, 제발 이 child_process.exec으로 매우 간단하다

답변

1

몇 가지 제안 :

var child = require("child_process"); 
var freeOut; 
child.exec("free", ["-m"], function (error, stdout, stderr) { 
    if (error) { 
    console.error(error, stderr); 
    return; 
    } 
    //stdout and stderr are available here 
    freeOut = stdout; 
    process.stdout.write(stdout); 
}); 
//Note. Do NOT use freeOut here. exec is async. Can only use in the callback 
+0

당신은? 내가 child.exec 오른쪽에서 표준 출력 반환 할 수 있음을 의미 실제로 내가 CONSOLE.LOG처럼 메모리 사용량을 직접받을 수있는 기능을 만들고 싶어 (ge tload.getmemoryusage()) ;. Node.js의 초보자입니다. – user3698126

+0

노드 v0.10에서는 비동기 적이 지 않으므로 반환 값이있는 일반 함수를 사용할 수 없습니다. 비동기 패러다임 노드 사용으로 인해 콜백, 약속 또는 이벤트 이미 터를 사용해야합니다. 노드 v0.11에는 동기식으로 반환하는 데 사용할 수있는 새로운'execSync' API가 있습니다. –

+0

고맙습니다. – user3698126