Stoqey IBKR(Node.js)初始化连接及README示例运行失败问题咨询
Stoqey IBKR(Node.js)初始化连接及README示例运行失败问题咨询
你好!从报错信息来看,问题出在ES模块与CommonJS模块的导入兼容性上,其实Node已经在错误提示里给出了明确的解决方法啦:
问题原因
@stoqey/ibkr是一个CommonJS模块,而你的项目在package.json里设置了"type": "module"(采用ES模块规范)。CommonJS模块不支持直接的命名导出,所以你直接用import { ibkr, MarketDataManager } from '@stoqey/ibkr'会触发Named export 'ibkr' not found的错误。
修复方案
按照错误提示的方式修改导入语句,先导入整个模块的默认导出,再解构出需要的成员:
// stoqey.js 修改后的完整代码 import pkg from '@stoqey/ibkr'; const { ibkr, MarketDataManager } = pkg; await ibkr(); const mkdManager = MarketDataManager.Instance; const data = await mkdManager.getHistoricalData( { symbol: 'AAPL', secType: 'STK' }, null, '1 D', '1 D', 'TRADES', true ); console.log(data);
额外检查点
从你提供的配置文件来看,其他设置都是正常的:
- 项目ES模块标识(
"type": "module")配置正确 - 依赖包
@stoqey/ibkr@^2.5.8已正常安装 .env里的IBKR连接参数(主机、端口、客户端ID)也配置到位
修改导入方式后,应该就能正常运行这个示例了。如果还是有问题,可以检查IBKR客户端是否已经启动并监听了指定的端口哦~
备注:内容来源于stack exchange,提问作者Lightbeard
相关产品推荐
相关产品推荐

