노드: 여정에서 한 걸음 앞서

이것은 NodeJS 시리즈의 세 번째 기사입니다. 과 를 읽을 수 있습니다.

JavaScript's popularity is almost completely independent of its qualities as a programming language.

Douglas Crockford, JavaScript: The Good Parts



이전 기사인 hello, world 프로그램에서 중단한 부분부터 이 기사를 시작하겠습니다. 더 논의할 수 있도록 이전hello.js 프로그램을 여기에 복사하겠습니다.

// A simple hello, world program

console.log("hello, world");


이 프로그램은 브라우저의 hello, world 프로그램과 동일합니다. 아시다시피, console , 알고 있습니다 log() 그리고 알고 있습니다 // . 잘 모르겠다면 console는 JavaScript에서 제공하는 객체이고 .log()console 객체 내의 메서드임을 알려드립니다. 따라서 console.log().log() 객체에서 console 메서드를 사용한다는 의미로 작성했습니다.
//는 한 줄의 주석을 작성하는 데 사용됩니다. /**/를 사용하여 여러 줄의 주석을 작성할 수 있습니다. 그것이 설명을 위한 것이고 우리는 그것을 실행했고 그것은 작동합니다. 그러나 document.getElementById()와 같이 DOM( Document Object Model )과 관련된 것을 포함하는 JavaScript 프로그램을 작성하면 작동하지 않습니다. 왜요? 왜냐하면 현재 우리가 작성하고 있는 JavaScript는 브라우저가 아닌 서버에서 실행되기 때문입니다. 따라서 DOM용으로 특별히 작성된 모든 개체와 메서드는 작동하지 않습니다. 그러면 무엇이 작동할까요? 노드official docs에서 언급된 클래스, 개체, 메서드 및 모든 구성 요소가 작동합니다. 예를 들어. os.platform() 은 Node의 Docos 모듈 아래에 언급되어 있으므로 작동합니다.

하나의 프로그램을 작성하고 이 방법을 확인하십시오. os.js라는 새 프로그램을 만들고 다음 주석을 먼저 작성하십시오.

// A program to demonstrate .platform() method from os module.


이제 .platform() 모듈의 os 메서드를 아래와 같이 사용하겠습니다.

// A program to demonstrate .platform() method from os module.

os.platform();


문서에서 이 .platform() 메서드에 매개 변수가 필요하지 않음을 확인할 수 있습니다. 따라서 방금 빈()을 작성했습니다. 아웃 프로그램이 실행될 준비가 된 것 같습니다.

$ node os
/home/kiran/Node/src/os.js:3
os.platform()
^

ReferenceError: os is not defined
    at Object. (/home/kiran/Node/src/os.js:3:1)
    at Module._compile (module.js:649:30)
    at Object.Module._extensions..js (module.js:660:10)
    at Module.load (module.js:561:32)
    at tryModuleLoad (module.js:501:12)
    at Function.Module._load (module.js:493:3)
    at Function.Module.runMain (module.js:690:10)
    at startup (bootstrap_node.js:194:16)
    at bootstrap_node.js:666:3


와우! 오류에서 보면 노드가 인식하지 못하고os 불평합니다os is not defined.

표준 라이브러리 내에 정의되어 있지만 기본적으로 사용할 수 없기 때문에 이 오류가 발생합니다. os 메소드를 사용하여 이 프로그램에 이 require 모듈을 포함시켜야 합니다. 포함하는 방법? 프로그램 맨 위에 다음 줄을 작성하십시오.

var os = require("os");


모듈의 os 표준 라이브러리를 호출하고 싶기 때문에 require() 메소드에 인수로 전달하고 os 에서 언급한 것처럼 var os라는 객체로 저장합니다. 원하는 이름을 지정할 수 있습니다. 그러나 표준 모듈에 대해 동일한 이름을 지정하는 것이 일반적입니다.
os.js 프로그램에 이 줄을 추가하면,

// A program to demonstrate .platform() method from os module.

var os = require("os");

os.platform();


이제 이 프로그램을 실행해 봅시다.

$ node os




무슨 일이야? 프로그램이 실행되지만 출력은 제공되지 않습니다. 왜요? os.platform()에 대해 언급한 문서에서와 같이

os.platform() 메서드는 Node.js의 컴파일 시간 동안 설정된 운영 체제 플랫폼을 식별하는 문자열을 반환합니다.

인쇄하지 않고 문자열 결과를 반환한다는 의미입니다. 인쇄는 우리가 추가해야 하는 부분이며 터미널에서 무언가를 인쇄하는 한 가지 방법을 알고 있습니다. 예, console.log() 방법입니다. 그래서 이것을 os.platform() 메서드 내에서 .log() 래핑하고,

// A program to demonstrate .platform() method from os module.

var os = require("os");

console.log(os.platform());


이제 드디어 os.js 프로그램이 끝났습니다. 우리 프로그램이 실행되고 결과가 나올 것이라고 약속합니다.

$ node os
linux


예이! GNU/Linux를 사용하고 있기 때문에 linux를 얻었습니다. 운영 체제에 따라 다른 것을 얻을 수 있습니다.

눈이 예리하고 세부 사항에 주의를 기울인다면 console 개체와 여전히 .log() 방법이 매력처럼 작동하지만 .platform() 방법이 아닌 이유와 같은 질문이 있을 수 있습니다. 둘 다 Node의 표준 라이브러리의 일부죠?

귀하의 질문에는 유효한 요점이 있습니다.

몇 가지 새로운 개념을 소개했기 때문에 이 기사에서 배운 내용을 수정해야 할 때가 되었기 때문에 다음 기사에서 이에 대해 논의해 봅시다!

다음 글에서 뵙겠습니다.

my blog에 원래 게시되었습니다.

좋은 웹페이지 즐겨찾기