2012-08-27 38 views
5
  • Làm thế nào tôi có thể tìm ra nơi trong mã nguồn C++ của node.js đối tượng JavaScript được xác định mà tôi có thể truy cập thông qua process.binding('eval')? - Tôi đã phát hiện ra rằng nó ở trong /src/node_script.cc trong trường hợp đặc biệt này, nhưng: Làm thế nào tôi có thể biết nơi tôi có thể tìm thấy mô-đun đó chỉ khi tôi chỉ xem qua tổng quan /src/ thư mục? Tôi không muốn duyệt qua tất cả các tệp trong số /src/ để tìm kiếm một mô-đun.
  • Tôi có thể tìm thấy một số thông tin sâu về nội bộ của process.binding()?

Cảm ơn.node.js internals: Làm thế nào tôi có thể tìm ra nơi `process.binding ('eval')` được định nghĩa?

Trả lời

2

Tôi cũng đang tìm kiếm chính bản thân mình hôm nay. Tôi không thể đảm bảo rằng không có nhiều hơn với nó, nhưng đây là những gì tôi phát hiện ra.

src/node_extensions.h chứa một danh sách được xây dựng trong module, được xác định như sau:

ITEM(node_module_name) 

nơi module_name là tên của module (rõ ràng)

Bạn có thể tìm ra các tập tin định nghĩa rằng mô-đun bằng cách tìm kiếm tập tin đó có một dòng bắt đầu với

NODE_MODULE(node_module_name, 

vì vậy, để tìm tập tin định nghĩa module 'evals' cho process.bindings:

$ grep "NODE_MODULE(node_evals" src/*.cc 
src/node_script.cc:NODE_MODULE(node_evals, node::InitEvals) 
Các vấn đề liên quan