gpt4 book ai didi

javascript - 如何在 react js(reactjs + electron)组件中使用 native node_modules?

转载 作者:行者123 更新时间:2023-12-03 12:39:11 34 4
gpt4 key购买 nike

我正在尝试在 reactjs 应用程序中使用 native node_module,即“@pokusew/pcsclite”,但它不起作用。有人可以帮忙吗?
以下是错误:

Uncaught TypeError: exists is not a function
at Function.getRoot (bindings.js:202)
at bindings (bindings.js:82)
at Object.<anonymous> (pcsclite.js:4)
at Object../node_modules/pcsclite/lib/pcsclite.js (pcsclite.js:160)
at __webpack_require__ (bootstrap:784)
at fn (bootstrap:150)
at Object../node_modules/pcsclite/index.js (index.js:1)
at __webpack_require__ (bootstrap:784)
at fn (bootstrap:150)
at Module.<anonymous> (App.css?4433:45)
at Module../src/App.js (App.js:85)
at __webpack_require__ (bootstrap:784)
下面是我在 reactjs 组件中使用的代码,我在其中以不同的方式导入 pcsclite 模块,一种是使用 import,另一种是使用 require 函数
import pcsclite from '../node_modules/@pokusew/pcsclite'
var pcsc = pcsclite();
pcsc.on('reader', function(reader) {
console.log('New reader detected', reader.name);
reader.on('error', function(err) {
console.log('Error(', reader.name, '):', err.message);
});

reader.on('status', function(status) {
console.log('Status(', reader.name, '):', status);
/* check what has changed */
var changes = reader.state ^ status.state;
console.log('changes(', changes, '):', status);
if (changes) {
if ((changes & reader.SCARD_STATE_EMPTY) && (status.state & reader.SCARD_STATE_EMPTY)) {
console.log("card removed");/* card removed */
reader.disconnect(reader.SCARD_LEAVE_CARD, function(err) {
if (err) {
console.log(err);
} else {
console.log('Disconnected');
}
});
} else if ((changes & reader.SCARD_STATE_PRESENT) && (status.state & reader.SCARD_STATE_PRESENT)) {
console.log("card inserted");/* card inserted */
reader.connect({ share_mode : reader.SCARD_SHARE_SHARED }, function(err, protocol) {
if (err) {
console.log(err);
} else {
console.log('Protocol(', reader.name, '):', protocol);
reader.transmit(new Buffer([0x00, 0xB0, 0x00, 0x00, 0x20]), 40, protocol, function(err, data) {
if (err) {
console.log(err);
} else {
console.log('Data received', data);
// reader.close();
// pcsc.close();
}
});
}
});
}
}
});

最佳答案

我为上述问题找到了解决方案。我已经通过窗口对象在 reactjs 中导入了我的 native node_module 。下面是解决方案。

const electron = window.require('electron');
const pcsclite = electron.remote.require('@pokusew/pcsclite');

关于javascript - 如何在 react js(reactjs + electron)组件中使用 native node_modules?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63867193/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com