node.js加载项如何检查Arguments类型

时间:2011-12-18 12:23:24

标签: c++ node.js v8

我使用node.js一段时间了,现在我需要编写一个附加组件,但我是c ++的新手。

在node.js中的

我可以将可选参数传递给function,并检查它们的类型。

function hello(arg, options, callback){
  if(!callback){
    if(typeof options === 'function'){
       callback = options;
       options = {};
    }
  }
  console.log(typeof arg);
}

但是在插件中。

Handle<Value> hello(const Arguments &args) {
    HandleScope scope;
    printf("%d\n", args.Length());
    // how to check type of args[i]
    return String::New("world");
}

1 个答案:

答案 0 :(得分:2)

您应该在http://v8.googlecode.com/svn/trunk/include/v8.h中查看API。您感兴趣的大部分功能都在Value课程上。这里有在线文档,http://bespin.cz/~ondras/html/classv8_1_1Value.html,但这看起来只是一些随机人员上传的文档版本。不确定他们是否在其他地方上线。

像这样的事情应该与你的JS片段做同样的事情。

Handle<Value> hello(const Arguments &args) {
  HandleScope scope;
  Local<Value> arg(args[0]);
  Local<Value> options(args[1]);
  Local<Value> callback(args[2]);

  if (callback.equals(False())) {
    if (options->IsFunction()) {
      callback = options;
      options = Object::New();
    }
  }

  // ...
}