홈페이지 » 코딩 » Node.js 초보자 안내서 (서버 측 JavaScript)

    Node.js 초보자 안내서 (서버 측 JavaScript)

    Node.js - 간단한 단어로 - is 서버 측 JavaScript. 요즘 많은 인기를 얻고 있습니다. 당신이 그것에 대해 들어 본 적이 있거나 학습에 관심이 있고 그것에 손을 대는 경우 -이 게시물은 당신을위한 것입니다..

    그렇다면 서버에서 JavaScript를 사용해야하는 이유는 무엇입니까? Node.js의 개념을 분명히하기 위해 PHP와 같은 일반적인 서버 측 언어와 비교하고 싶습니다. Node.js는 이벤트 기반 서버 실행 절차 PHP의 멀티 스레드 실행보다는.

    더 설명하기 위해, 우리는 어떤 Node.js가 함께 호스팅 제공 업체 제안 및 설치 팁. 자바 스크립트, jQuery 및 Ajax에 대한 중급 수준의 지식이 필요하지만, 전체 내용을 더 쉽게 이해하고보다 쉽게 ​​이해할 수있는 예제도 제공하므로 Node.js에 대해 더 자세히 알아 보도록하겠습니다.!

    사례를 생각해 봅시다.

    천천히 다른 웹 서버에서 콘텐츠를 동적으로로드해야하는 웹 사이트를 고려하십시오. PHP에서는 두 가지 방법으로 할 수 있습니다. - 간단한 파일로 코딩다른 스크립트로 코딩하기, 그때 다중 스레드 접근 방식으로 실행.

    코드가 간단하더라도 첫 번째 방법 실행이 잠시 멈춘다. 저속 웹 서버에 액세스하는 시점에서 두 번째 방법은 성능면에서 더 최적화 됨 코드 작성이 어렵고 다중 스레드 관리 오버 헤드가 있습니다. 이 경우는 서버 측 JavaScript (즉, Node.js)가 아닌 대부분의 웹 프로그래밍 언어에서 비슷합니다..

    Node.js의 차이점은 무엇입니까?? Node.js를 이해하기 위해서는 자바 스크립트의 이벤트 기반 브라우저에서 프로그래밍. 우리는 여기서 같은 기술을 사용합니다. 별도의 스레드를 사용하는 대신 함수가 finish 이벤트에 첨부됩니다. ~의 “느린 웹 서버 액세스” 따라서 위에서 설명한대로 모든 기능 다중 스레드 오버 헤드없이 위에서 언급 한 최적화 된 두 번째 옵션.

    Node.js 시작하기

    Node.js는 JavaScript입니다.. 왜 클라이언트에서 자바 스크립트의 이벤트 기반 기능을 서버에 활용할 수 없습니까? 이 생각으로 인해 Node.js가 개발되었을 수도 있습니다..

    즉, Node.js의 가장 중요한 점은 - 이벤트 기반 비동기 함수입니다.. 그것은 이벤트 루프 I / O 작업 (외부 웹 서비스 액세스, 하드웨어 액세스)을 기다리는 대신.

    Node.js는 여전히있을 수 있습니다. 처리 능력을 이용한다. 서버가 다른 작업을 기다리는 경우. 이것은 Node.js를 만듭니다. 확장 성있는 수백만 개의 동시 연결.

    JavaScript는 서버에서 어떻게 실행됩니까??

    Node.js는 v8 환경에서 작동합니다. 가상 기기 또는 자바 스크립트 엔진 자바 스크립트 코드를 실행하므로 호스팅의 경우 일반 웹 호스트를 사용할 수 없습니다. 당신이 필요로하는 것들을 v8 환경.

    다음은 Node.js 호스팅에 대한 몇 가지 제안 사항입니다.

    1. 클라우드 파운드리
    2. 클라우드 노드
    3. DotCloud
    4. Duostack

    Node.js 설치

    노드가 Linux, Macintosh 및 Solaris 운영 체제에서 완벽하게 작동합니다.. Windows에서는 Cygwin 에뮬레이션 레이어를 사용하여 설치할 수 있습니다. Windows의 빌드는 만족스럽지 않지만 실행 가능한 것을 얻을 수 있습니다..

    옵션 1 : 소스에서 노드 만들기.

    용도 하다 node.js 빌드 및 설치 (명령 줄에서 다음을 실행). 힘내라..

     git clone --depth 1 git : //github.com/joyent/node.git cd 노드 체크 아웃 v0.4.11 export JOBS = 2 mkdir ~ / local. / configure --prefix = $ HOME / local / node make install $ HOME / local / node / lib / node_modules '>> ~ / .profile echo'내보내기 경로 = $ 홈 / 지역 / 노드 / .profile source ~ / .profile 

    옵션 2 : 패키지에서 Node.js 설치

    Mac 사용자의 경우 Node.js를 패키지로 https://sites.google.com/site/nodejsmacosx/에서 설치할 수 있습니다..

    노드 설치 테스트

    성공적인 노드 설치를 확인하기 위해 우리는 매우 간단한 콘솔 "Hello World"프로그램을 시험해 볼 수 있습니다. "test.js"다음 코드를 작성하십시오.

     var sys = require ( "sys"); sys.puts ( "Hello World"); 

    코드 설명 :

    그것은 sys 변수를 변수로 넣다. sys. 그런 다음 sys 콘솔 태스크를 수행하는 오브젝트. 그만큼 sys.puts 다음과 유사한 명령입니다. 코우트 C ++에서 위의 스크립트를 실행하려면 명령 프롬프트로 이동하여 아래 명령을 실행하십시오.

     노드 test.js 

    설치가 성공적이면 화면에 안녕하세요 세계 출력이 표시됩니다..

    HTTP 서버 만들기

    이제 Node.js를 사용하여 웹 서버를 통해 "Hello World"를 만들 차례입니다. 여기에 우리가 할 일이 있습니다. 서버를 생성하여 “안녕하세요 세계” 포트 8080의 localhost에 연결 URL이 무엇이든 관계없이 행사 ~이다..

    코드 :

     var sys = require ( "sys"), my_http = require ( "http"); response.writeHeader (200,  "Content-Type": "text / plain"); response.write ( "Hello World (Hello, Hello World)") my_http.createServer (function (request, response) sys.puts "); response.end ();). listen (8080); sys.puts ( "8080에서 실행되는 서버"); 

    코드 설명 :

    Node.js에서 가장 흥미로운 부분은 이벤트 기반 프로그래밍입니다. HTTP 서버를 만들려면 HTTP 라이브러리, 그래서 우리는 앞으로 나아가서 다음을 사용하여 그것을 추가합니다. my_http. 우리는 함수에 의해 서버를 생성합니다 :

     my_http.createServer (function (request, response) ). listen (8080); 

    첫 번째 인수로 주어진 함수가 실행됩니다. 이벤트가 포트 8080에서 트리거 될 때마다, 그래서 함수 자체 노드가 포트 8080에서 이벤트를 수신하도록 제안합니다.. 이를 감지하기 위해 “나는 쫓겨났다.” 요청이 수신 될 때마다 콘솔 화면에 표시 될 메시지.

    그만큼 의뢰 객체가 포함 서버에 대한 요청에 대한 모든 정보. 예를 들어 URL 문자열이 들어 있습니다. 그만큼 응답 object는 서버의 응답을 처리합니다.. 먼저 응답 헤더를 a로 설정합니다. 텍스트 / 일반 콘텐츠, 출력 “안녕하세요 세계“, 출력 스트림 끝내기. 200 상태 응답.

    위의 예제는 매우 간단한 예이지만 동일한 서버의 브라우저에서 제공하는 URL이 무엇이든간에 동일한 출력을 얻을 수 있음을 알 수 있습니다. “안녕하세요 세계”.

    간단한 정적 파일 서버 만들기

    다음 튜토리얼에서 간단한 정적 파일 서버를 만들어 보겠습니다..

    코드 :

     var sys = require ( "sys"), my_http = require ( "http"), path = require ( "path"), url = require ( "url"), filesys = require ( "fs"); my_http.createServer (function (request, response) var my_path = url.parse (request.url) .pathname; var full_path = path.join (process.cwd (), my_path); path.exists (full_path, function (exists (404, "Content-Type": "text / plain"); response.write ( "404 찾을 수 없음 \ n"), response.end (); else  (500,  "Content-Type": "text / plain"); response.write (err + file) 파일 시스템 Response.end (););););;; 듣는다 (8080); sys.puts ( "8080에서 실행되는 서버"); 

    코드 설명 :

    위의 코드는 매우 간단합니다. 블록으로 설명합니다..

     var sys = require ( "sys"), my_http = require ( "http"), path = require ( "path"), url = require ( "url"), filesys = require ( "fs"); 

    이러한 모든 라이브러리는 프로그램에 필요합니다. 그 사용법은 다음 코드에서 명확해질 것이다..

     var my_path = url.parse (request.url) .pathname; var full_path = path.join (process.cwd (), my_path); 

    그만큼 의뢰 객체는 앞에서 설명한대로 요청 세부 정보를가집니다. 우리는 해석하다 함수를 얻기 위해 포함시킨 URL 클래스의 함수 경로 이름 요청 URL의 경로 이름을 얻은 후에는 파일의 전체 경로를 얻기 위해 현재 작업 디렉토리의 경로와 연결합니다.

    URL 가입을 위해 우리는 어울리다 경로 라이브러리에서.

     path.exists (full_path, function (exists)  

    전체 경로를 얻은 후에 함수에 의해 경로가 존재하는지 확인합니다. 존재하다. 검사가 완료되면 콜백 함수가 호출되어 두 번째 인수로 전달됩니다..

     if (! exists) response.writeHeader (404,  "Content-Type": "text / plain"); response.write ( "404 찾을 수 없음 \ n"); response.end ();  response.writeHeader (500,  "Content-Type": "text / plain"); response.write (()  ; else response.writeHeader (200); response.write (file, "binary"); response.end ();));  

    콜백 함수에서 파일이 존재하지 않으면 우리는 "404 페이지를 찾을 수 없습니다"오류.

    페이지가 발견되면 Google은 파일을 readFile 파일 시스템의 기능 우리는 또한 콜백 함수를 볼 수 있습니다. readFile 함수가 정의되어 있습니다. 파일 읽기에 오류가 없으면 파일이 표시됩니다. 오류가 있으면 오류 텍스트와 함께 상태 500이 리턴됩니다..

    또한 이전 튜토리얼의 코드를 함수로 포장하여 다음 튜토리얼이나 향후 사용할 때 사용할 수 있도록하는 것이 좋습니다..

     var sys = require ( "sys"), my_http = require ( "http"), path = require ( "path"), url = require ( "url"), filesys = require ( "fs"); my_http.createServer (function (request, response) var my_path = url.parse (request.url) .pathname; var full_path = path.join (process.cwd (), my_path); path.exists (full_path, function (exists (404, "Content-Type": "text / plain"); response.write ( "404 찾을 수 없음 \ n"), response.end (); else  (500,  "Content-Type": "text / plain"); response.write (err + file) 파일 시스템 "); listen (8080); sys.puts ( "Server Running on 8080"); createServer (function (request, response) var my_path = url.parse (request.url) 경로 이름; load_file (my_path, 응답); 

    숙박 조정 !

    그게 다야. Node.js에 대한 좋은 아이디어가 있기를 바랍니다. 다음 기사에서는 Node.js를 사용하여 Facebook 좋아요 수를로드하고 표시하십시오.. 계속 지켜봐주십시오.!

    편집자 주 : 이 게시물은에 의해 작성됩니다 지오 폴 Hongkiat.com. Geo는 PHP, Codeigniter, WordPress, jQuery 및 Ajax로 작업하는 것을 즐기는 독립적 인 웹 / iPhone 개발자입니다. 그는 PHP 분야에서 4 년의 경력을 쌓았으며 iniPhone 어플리케이션 개발 분야에서 2 년의 경력을 쌓았습니다..