추신 : 먼저 노드 6.2.1을 업그레이드하십시오. 노드 업그레이드 명령 npm install; n stable.node.js Extension은 c/c ++로 작성되고 node.js function dreime () 함수를 통해로드 된 동적 링크 라이브러리입니다. 평범한 node.js 모듈을 사용하는 것과 같습니다. 주로 노드와 C/C ++ 라이브러리 사이의 인터페이스를 제공합니다.
이러한 방식으로, 메소드 또는 함수가 노드 확장을 통해 구현되면 여러 모듈과 인터페이스에 대한 지식이 포함되어 매우 복잡해집니다.
• V8 : C ++ 라이브러리를 통해 구현을 구현하는 JavaScript.v8은 객체 작성 메커니즘, 콜백 기능 등을 제공합니다. 대부분의 v8api 문서는 V8.H 헤더 파일에 있습니다. 내 V8 온라인 문서를 클릭하십시오
• libuv : node.js 작업자 스레드 및 비동기 동작을 구현하는 이벤트 루프를위한 라이브러리. 또한 모든 주요 운영 체제 시스템에 단순히 액세스 할 수있는 크로스 플랫폼 초록 라이브러리 역할을합니다. 파일 시스템, 소켓, 타이머 및 시스템 이벤트와의 상호 작용과 같은 많은 일반적인 작업이 있습니다. Libuv는 또한보다 복잡한 비동기에 사용할 수있는 추상적 인 pthreads와 같은 스레드를 제공합니다. Node.js의 C/C ++ 확장자는 표준 이벤트 루프를 넘어야합니다. 플러그인 저자는 I/O 이벤트 루프 차단을 피하고 Libuv 비 차단 시스템 작업, 작업자 스레드 및 사용자 정의 스레드를 통해 작업 집중 작업을 완료하는 방법에 대한 생각을 권장합니다.
• Node.js 내장 라이브러리 : Node.js 자체는 많은 C/C ++ Extension API를 사용합니다. C/C ++ 확장 노드의 가장 중요한 클래스 : ObjectWrap
• OpenSSL : Node.js의 다른 라이브러리와 같은 Node.js의 수많은 정적 링크 라이브러리는 소스 디렉토리 트리 아래의 DEPS 디렉토리에 있습니다. 자세한 내용은 추가 정보는 Node.js의 자체 종속성을 참조하십시오. 공식 Node.js Extension 라이브러리 예제를 클릭하십시오. Node.js에 C/C ++ Extension 라이브러리를 작성하는 시작점이 될 수 있습니다. V8 및 OpenSSL 클래스 만 노드 C/C ++ 확장에서 자주 사용됩니다.
노드 C/C ++ 확장 첫 폭탄 - 최신 예 Hello World
이 예제는 node.js 버전 번호 v5.0 이상에 적용됩니다.
// hello.jsconst addon = require ( './ build/release/addon'); console.log (addon.hello ()); // 'world'// hello.cc#포함 <node.h> #include <v8.h> 네임 스페이스 데모 {v8 :: functioncallbackinfo 사용; v8 :: local 사용; v8 :: 객체 사용; v8 :: value; args.getisolate (); args.getReturnvalue (). set (string :: newfromutf8 (분리, "World");} void init (local <boodports exports) {node_set_method (exports, "hello", method);} node_module (addon, init) // namest. [{ "target_name": "addon", "소스": [ "hello.cc"]}}노드 집 명령
코드 사본은 다음과 같습니다.
Node Gyp 구성 빌드를 구성합니다
위의 내용은 편집자가 소개 한 Node.js Addons Translation (C/C ++ Extension)에 대한 관련 지식입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!