节点插件和 v8 全局模板

Node Addons and v8 GlobalTemplate

本文关键字:全局 v8 插件 节点      更新时间:2023-10-16

我正在使用节点0.10.17构建节点插件,在我的一个类中,我正在制作v8的上下文。我有这个代码:

v8::Locker locker;
v8::HandleScope handle_scope;
v8::Handle<v8::ObjectTemplate> globalTemplate;
// vvv--------------- Exception here at ->Set()
globalTemplate->Set(v8::String::New("version"), v8::FunctionTemplate::New(NodeVersion));
context = v8::Context::New(NULL, globalTemplate);
if (context.IsEmpty()) {
      fprintf(stderr, "Error creating contextn");
}

这让我在函数调用中->Set()异常。应用程序刚刚中断。

我该怎么办?

你的globalTemplate指针是空的,因为你只创建了一个空的 v8::Handle。

你应该做这样的事情:

v8::Handle<v8::ObjectTemplate> globalTemplate = v8::ObjectTemplate::New();