2011-12-18 9 views
1

しばらくの間node.jsを使用しますが、今はアドオンを書く必要がありますが、私はC++のnewbです。node.jsアドオンチェックの方法引数タイプ

in node.js関数にオプションの引数を渡して型をチェックできます。

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"); 
} 

答えて

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(); 
    } 
    } 

    // ... 
} 
+0

非常に良い、ありがとう –

関連する問題