React导入dukascopy-node包报错Object prototype may only be an Object or null
报错根因
dukascopy-node是仅适配Node.js服务端运行环境的工具库,内部依赖Node.js原生核心模块(如fs、net、buffer等)及Node专属的运行时特性,没有做浏览器环境兼容。你在React前端项目中导入时,浏览器环境缺失其依赖的底层API,导致库内部初始化时原型继承的目标对象为undefined,就会触发该报错,和导入方式无关,不管用import还是require都无法解决。
可行解决方案
- 后端中转调用
将dukascopy-node的调用逻辑迁移到你自己的Node.js后端服务中实现,对外暴露数据接口,React前端直接请求你自己的后端接口获取处理好的汇率数据即可,这是兼容性最好的方案。 - 服务端运行逻辑
如果你使用的是支持服务端渲染/服务端组件的React框架(如Next.js),可以将这段获取数据的逻辑写在服务端组件、服务端动作或者接口路由中,保证代码仅在Node.js服务端环境执行,不要在客户端组件中导入调用该库。 - 替换为浏览器适配的数据源
如果你不想额外搭建后端服务,可以寻找支持CORS的公开外汇数据API,直接在React前端请求对应接口获取数据,放弃使用仅支持Node环境的dukascopy-node库。
内容的提问来源于stack exchange,提问作者Salman Fazal
相关产品推荐
相关产品推荐

