노드J:`process.bind`는 무엇을 의미하나요?
-
21-12-2019 - |
문제
나는 본 적이 process.binding('...')
여러번 조사하면서 github의 node.js 소스 코드.
이 기능이 무엇인지 설명해 줄 수 있는 사람이 있나요?
다른 팁
본질적으로 C ++ 기능을 가져오고 JavaScript에서 사용할 수있게하는 기능입니다. zlib
에 사용되는이 예제 예제process.binding('zlib')
이것은 본질적으로 Zlib C ++ 객체를 꺼내고 얻은 다음 JavaScript 코드에서 나머지 시간 동안 사용되고 있습니다.
그래서 zlib을 사용할 때 실제로 나가지 않습니다. C ++ 라이브러리를 잡으면 C ++ 기능을 래핑하는 JavaScript 라이브러리를 사용하고 있습니다.
를 쉽게 사용할 수 있습니다.
process.binding node.js의 JavaScript 측면을 node.js의 C ++ 측면에 연결합니다. Node.js의 C ++ 측면은 노드가 수행하는 모든 내부 작업이 실제로 구현되는 것입니다. 따라서 많은 코드가 궁극적으로 C ++ 코드에 의존합니다. node.js는 C ++의 힘을 사용하고 있습니다.
다음은 예제입니다.
const crypto=require(“crypto”)
const start=Date.now()
crypto.pbkdf2(“a”, “b”, 100000,512,sha512,()=>{
console.log(“1”:Date.now()-start)
})
.
crypto는 해싱 및 암호 저장을위한 node.js의 기본 제공 모듈입니다. 이것은 우리가 Node.js에서 그것을 구현하는 방법입니다. 그러나 실제 해시 프로세스는 노드의 C ++ 측에서 수행됩니다.
process.binding("crypto")
는이 프로세스를 SRC 디렉토리의 수출 업체에 가져갈 것입니다. Node.j의 세계는 C ++ 세계입니다. Node.js 의이 측면에서 V8은 부울 또는 함수 또는 객체와 같은 다른 프로그램 내부에 배치 된 Node.js 값을 번역하고이를 C ++ 등가물로 변환 할 것입니다.
자바 스크립트 코드가 C ++로 번역 된 후, libuv는 이벤트 풀에서 이벤트 루프 외부에서 C ++ 측면에서 위의 코드를 실행하기 위해 모든 무거운 계산을 수행합니다.