使用WebSocket连接Deriv API时遇ReferenceError: require未定义问题
解决Deriv API连接时的
ReferenceError: require is not defined错误 错误原因
require()是Node.js专属的CommonJS模块加载语法,浏览器环境没有内置这个方法,直接在浏览器中运行这段代码就会触发该错误。
解决方案
方案1:在Node.js环境运行代码
如果你的代码计划在Node.js环境执行:
- 确保已安装Node.js
- 初始化项目并安装依赖:
npm init -y npm install ws @deriv/deriv-api
- 将代码保存为
.js文件(如deriv-test.js),然后用Node.js运行:
node deriv-test.js
方案2:在浏览器环境运行代码
如果要在浏览器中使用Deriv API,需改用浏览器兼容的模块引入方式:
方式一:CDN全局引入
<script src="https://cdn.jsdelivr.net/npm/ws@8.17.0/dist/ws.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/@deriv/deriv-api/dist/DerivAPI.min.js"></script> <script> // 浏览器环境下WebSocket和DerivAPI会成为全局变量 const connection = new WebSocket("wss://ws.binaryws.com/websockets/v3?app_id=1089"); const api = new DerivAPI({ connection }); const basic = api.basic; basic.ping().then(console.log); </script>
方式二:ES模块引入
<script type="module"> import WebSocket from 'https://cdn.skypack.dev/ws'; import DerivAPI from 'https://cdn.skypack.dev/@deriv/deriv-api'; const connection = new WebSocket("wss://ws.binaryws.com/websockets/v3?app_id=1089"); const api = new DerivAPI({ connection }); const basic = api.basic; basic.ping().then(console.log); </script>
内容的提问来源于stack exchange,提问作者hayder rabeeah
相关产品推荐
相关产品推荐

