Для интерфейсов C ++ вы должны создать аддон C ++ для узла.Аддон предоставит функции узлу в виде модуля, например const myCppApi = require('bindings)('yourNativeAddonName')
, разница в том, что код модуля - это не javascript, а встроенная оболочка, которая выполняет вызовы скомпилированного кода.Или, другими словами, где вы можете использовать C ++ API вашего сканера бара.
Примеры этого можно найти в Документах API node.js https://nodejs.org/api/addons.html
Для вашей цели я бырекомендуем использовать N-API и пренебрегать другими методами, потому что N-API не полагается на то, что вы слишком много знаете о v8 (v8::
пространство имен, изоляты, контексты и т. д.) и о том, как работает хром.Вместо этого все упрощено.
В этом примере репозитория можно узнать, как работать с N-API https://github.com/nodejs/abi-stable-node-addon-examples/tree/master/1_hello_world/napi
Полезный совет: поскольку я видел, что вы используете электрон, убедитесь, чтопостроить свой модуль с той же версией узла, которую использует ваш электрон.Вы можете проверить их, напечатав process.version
в основном процессе или заблокировав их на странице электроники.