問題タブ [node.js-addon]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - これと ObjectWrap::Unwrap のホルダー
クラスはと をv8::FunctionCallbackInfo
区別This
しHolder
ます。this
私は JavaScript の内容を知っており、それThis
がその設定を反映していると思います。しかし、私は何が何であるかについて漠然とした考えしか持っていませHolder
ん.Holder
This
特に、nan ベースの node.js 拡張機能を作成して をアンラップするObjectWrap
場合、どれを渡す必要がありますか?
現在、node::ObjectWrap
ドキュメントには を使用Holder
した例があり、現在のNan::ObjectWrap
ドキュメントでは が使用This
されているため、「ドキュメントの例に従ってください」というだけでは、この質問への回答には役立ちません。
javascript - C++ node.js モジュール。カウントが機能しない?
こんにちは、私は C++ の初心者で、既存のネイティブ ノード モジュールを変更しようとしています。
モジュール内に couts を追加して、役立つと思われる情報を出力しようとしています。
前の方法は機能していますが、cout は表示されません。node-gyp ビルド中に失われたり表示されたりしますか? 私は何か間違ったことをした?それを達成する方法はありますか?
c++ - v8::String を const char に変換する方法 *
私はdllにこの関数を持っています
私のノードアドオンには、この機能があります
コンパイルしようとすると、node-gyp がエラーを返します: 「引数 1 を 'v8::Local' から 'const char *' に変換できません。
v8::String を const char * に変換する方法は?
node.js - エラー: モジュール 'nan' が見つかりません
私はネイティブNode.jsアドオンに取り組んでおり、nan docsに従っています
次のように nan を binding.gyp に含めました。
"include_dirs" : [ "<!(node -e \"require('nan')\")" ]
また、nan は npm の依存関係にあります。
しかし、別のノード モジュール node-gyp 内にパッケージをインストールすると、エラーで失敗します
c++ - nodejs ネイティブ アドオン マルチスレッド
少しの間、nodejs 用のネイティブ モジュールを開発しましたが、いくつかのケースは私にはよくわかりません。残念ながら、v8 のドキュメントはあまり良くありません。
ですから、私にとって興味深い分野の 1 つがあります。まずstd::thread
、メインのネイティブ モジュール スレッドで使用することは可能ですか? ドキュメントには、libuv 関数を使用して非同期操作を実行できると書かれていますが、このライブラリ内では v8 オブジェクトにアクセスできません。しかし、メイン スレッドで同期的に計算を並列化し、たとえば、一部の JS オブジェクト プロパティをその結果で別のスレッドで変更したい場合はどうすればよいでしょうか?
次のコードを試しました:
そして、期待どおりに動作しますが、別のスレッドで v8 オブジェクトにアクセスできないのはなぜでしょうか?
また、結果を v8::Number 型に変更し、現在の分離と新しい分離を介して myFunction 内に作成しようとしましたが、seg fault が発生します。
javascript - Node.js アドオンで std::thread を使用する
Node.js アドオンから同期関数を使用するとします。
しかし、私が持っているメソッドコードでは:
したがって、アドオンの同期呼び出しが 2 つありますが、このアドオンでは 2 つのスレッドが使用されます。1 つの関数がスレッドを開始し、もう 1 つの関数がそれらに参加します。質問は次のとおりです。並行して実行されますかrandom_void_function
? とは同期しているrandom_void_function_2
ので、とはイベント ループをブロックしますか? 私が見たところ、彼らはブロックしません。my_function
final_function
random_void_function
random_void_function_2
javascript - C++ から Node v8 Float32Array を作成する
ドキュメントを調べました:
を使用して、float の v8 配列を設定しようとしていますthrust::host_vectofr<float>
。dataset[i].vector = thrust::host_vector<float>
配列を使用すると、整数に丸められているようです:
型付き配列を使用すると、次のようになりFloat32Array
ます。
コンパイルは問題なく実行できますが、実行するとクラッシュします:
JavaScriptで使用できるように、C++からv8 Float32Arrayを割り当ててから入力する正しいアプローチは何ですか?
float
また、Node.JS/v8 には?が付いていないことも理解しています。