Node.js Internals: Как я могу узнать, где определяется `process.binding('eval')`?

  • Как я могу узнать, где в исходном коде C++ node.js определяется объект JavaScript, к которому я могу получить доступ через process.binding('eval')? - Я уже выяснил, что в этом особом случае он находится в /src/node_script.cc, но: Как я могу узнать, где я могу найти этот модуль, когда я просто просматриваю обзор каталога /src/? Я не хочу просматривать все файлы в /src/ для поиска модуля.
  • Где я могу найти подробную информацию о внутреннем устройстве process.binding()s?

Спасибо.


person fridojet    schedule 27.08.2012    source источник


Ответы (1)


Сам сегодня искал такой же. Я не могу гарантировать, что это не что-то большее, но это то, что я обнаружил.

src/node_extensions.h содержит список встроенных модулей, определенных следующим образом:

ITEM(node_module_name)

где module_name — имя модуля (очевидно)

Вы можете узнать, какой файл определяет этот модуль, выполнив поиск в каком файле есть строка, начинающаяся с

NODE_MODULE(node_module_name, 

Итак, чтобы найти файл, определяющий модуль evals для process.bindings:

$ grep "NODE_MODULE(node_evals" src/*.cc
src/node_script.cc:NODE_MODULE(node_evals, node::InitEvals)
person Mat    schedule 09.08.2013