현대 Javascript로 시작 했으므로 Nodejs를 사용하기로 결정했습니다. 현재 데스크탑에서 JS에 가장 많이 사용되는 프레임 워크로 보이기 때문에 Nodejs가 왜 사용되지 않는지 이해할 수 없습니다. 내가하는 작업과 관련된 오류 메시지가 없습니다.Nodejs로 stdout 쓰기
그것은 작동하지 않습니다
var a = 5;
var func = function(){return arguments.length;};
process.stdout.write(+func(1,2,3,a));
이 조각을 고려하고 다음과 같은 오류 메시지가
net.js:612
throw new TypeError('invalid data');
^
TypeError: invalid data
at WriteStream.Socket.write (net.js:612:11)
at Object.<anonymous> (var_1.js:3:16)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:902:3
나는 C/C++ 프로그래머 해요를 생성하고이 또한 나에게 절대적으로 비밀입니다 나는 결과가 integer
인지 확인하기 위해 func
을 호출하기 전에 +
을 사용 했으므로 write
이 왜 불평입니까? + '\n'
을 추가하는 어떤 말도 후
이 코드가 작동을하게
var a = 5;
var func = function(){return arguments.length;};
process.stdout.write(+func(1,2,3,a) + '\n');
누구나 무슨 일이 일어나고 있는지 설명 할 수 있습니까?
'문자열 또는 버퍼 여야합니다.' 정말 정말? 이 라이브러리의 디자인에서이 선택에 대한 의미있는 단일 이유가 있습니다. – user2485710
@ user2485710 노드의 스트림은 바이트 문자열/배열/등을 표현하는 방법 인 Buffers를 중심으로합니다. 그것은 문자열을 허용합니다 왜냐하면 그것들은 쉽게 버퍼로 변환 될 수 있습니다 - if (typeof chunk === 'string') chunk = 새로운 버퍼 (chunk); –