v8:如何在FunctionTemplate中包含脚本

时间:2016-05-06 07:45:57

标签: javascript c++ node.js v8 node.js-addon

我这样做是为了使用nodejs add ons创建一个MongoDB nodejs驱动程序包装器。 我想创建一个包装器来删除异步性质。可悲的是,所述驱动程序没有“同步”选项。

我尝试构建mongodb c驱动程序和mongodb c ++驱动程序但有no luck

这是我的问题: 如何将stringed javascript函数体解析为v8函数?

我有这段代码

//args[0] is from the parameter: const FunctionCallbackInfo<Value>& args

Local<ObjectTemplate> global_templ = ObjectTemplate::New();
global_templ->Set(String::NewFromUtf8(isolate, "db"), args[0]);
Local<Context> context = Context::New(isolate, NULL, global_templ);

string str1 = "";
str1 += "if(!(db.serverConfig.isConnected && db.serverConfig.isConnected())) ";
str1 += "   return false;";
str1 += "else";
str1 += "   return true;";
const char * str2 = str1.c_str();
context->Enter();
Local<String> source = String::NewFromUtf8(isolate, str2);

Local<Script> script = Script::Compile(source);

Local<Value> result = script->Run();
args.GetReturnValue().Set(result);
context->Exit();

这会产生错误:非法的返回声明 我总结说我必须把这个功能。

Local<FunctionTemplate> func = FunctionTemplate::New(isolate);

我不知道如何将函数体解析为模板。 :'(

PS:我是新手,所以请用newb友好的话。大声笑。哈哈

0 个答案:

没有答案