我这样做是为了使用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友好的话。大声笑。哈哈