Question

J'ai vu process.binding('...') à de nombreuses reprises lors de la recherche par le biais de la node.js le code source sur github.

Quelqu'un peut-il m'expliquer ce que cette fonction n'?

Était-ce utile?

La solution

Cette fonction retourne le module interne, comme l'exigent.Il n'est pas public, de sorte que vous ne devriez pas compter sur elle dans votre code, mais vous pouvez l'utiliser pour jouer avec nœud du faible niveau des objets, si vous voulez comprendre comment les choses fonctionnent.

Par exemple, ici timer_wrap la liaison est enregistré.Il les exportations Timer constructeur.Dans lib/timers.js c'est importé

Autres conseils

C'est une fonctionnalité que l'essentiel de sortir et de saisir le C++ fonctionnalité et de la rendre disponible à l'intérieur du javascript .Prenez cet exemple process.binding('zlib') qui est utilisé dans zlib

Il s'agit essentiellement de sortir et d'obtenir la zlib objet C++ et il est alors utilisé le reste du temps dans le code javascript.

Ainsi, lorsque vous utilisez zlib vous n'êtes pas en train de sortir et saisissant la bibliothèque C++, vous êtes à l'aide de la bibliothèque Javascript qui enveloppe le C++ fonctionnalité pour vous.

Il rend plus facile à utiliser

processus.la liaison relie le javascript côté de Node.js pour le C++ côté de la Node.js.C++ côté de node.js est, où beaucoup de travail en interne de tout ce que le nœud n'est réellement mis en œuvre.Donc beaucoup de votre code dépend en fin de compte code C++.Node.js est à l'aide de la puissance du C++.

Voici un exemple:

const crypto=require(“crypto”)
const start=Date.now()
crypto.pbkdf2(“a”, “b”, 100000,512,sha512,()=>{
console.log(“1”:Date.now()-start)
})

Crypto est un module intégré dans Node.js pour le hachage et sauvegarder des mots de passe.C'est la façon dont nous mettons en œuvre dans Node.js mais, concrètement, le malaxage se fait en C++ côté de node.js.

process.binding("crypto") va prendre ce processus pour les exportateurs de répertoire src où est le c++ monde de Node.js.Dans ce côté des Node.js V8, va se traduire par la node.js les valeurs que l'on place à l'intérieur de nos différents programmes comme un booléen ou une fonction ou un objet et de le traduire dans leur C++ équivalents.

Après le code Javascript est traduit en C++, libuv va prendre place et faire tous les calculs à exécuter le code ci-dessus dans le c++ côté, à l'extérieur de la boucle d'événements, dans le pool de threads.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top