在前端开发中,我们经常需要使用在线代码执行服务来进行代码测试和学习。aiedu-sandbox 是一个基于 Node.js 和 Docker 的轻量级在线代码执行服务,可以帮助我们快速进行代码测试和学习。本文将详细介绍如何使用 npm 包 aiedu-sandbox 来进行在线代码测试和学习。
安装和使用
安装
使用 npm 安装 aiedu-sandbox:
npm install aiedu-sandbox --save
使用
在代码中引入 aiedu-sandbox:
const Sandbox = require('aiedu-sandbox');
创建一个 Sandbox 实例:
const sandbox = new Sandbox({ image: 'node:12', code: 'console.log("hello, world!")', });
设置必要的参数,其中 image
是 Docker 镜像,code
是要执行的代码。
运行代码:
sandbox.run((output) => { console.log(output); });
API 参考
构造函数
new Sandbox(options)
创建一个 Sandbox 实例。options
对象包含以下属性:
image
:Docker 镜像名称,默认为node:12
。code
:要执行的代码字符串,默认为空字符串。network
:要连接的 Docker 网络名称,默认为bridge
。timeout
:执行代码的超时时间,单位为毫秒,默认为5000
毫秒。memoryLimit
:执行代码的内存限制,单位为 MB,默认为128
MB。
方法
run(callback)
运行代码并输出结果。callback
是一个回调函数,用于接收代码执行的结果。例如:
sandbox.run((output) => { console.log(output); });
setCode(code)
设置要执行的代码字符串。例如:
sandbox.setCode('console.log("hello, world!")');
setImage(image)
设置要使用的 Docker 镜像名称。例如:
sandbox.setImage('node:14');
setNetwork(network)
设置要连接的 Docker 网络名称。例如:
sandbox.setNetwork('my-network');
setTimeout(timeout)
设置代码执行的超时时间。例如:
sandbox.setTimeout(10000);
setMemoryLimit(memoryLimit)
设置代码执行的内存限制。例如:
sandbox.setMemoryLimit(256);
示例代码
输出“hello, world!”
-- -------------------- ---- ------- ----- ------- - ------------------------- ----- ------- - --- --------- ------ ---------- ----- -------------------- ---------- --- -------------------- -- - -------------------- ---
输出:
hello, world!
计算 1+2+3+...+n 的和
-- -------------------- ---- ------- ----- ------- - ------------------------- ----- ---- - - --- - - ---- --- --- - -- --- ---- - - -- - -- -- ---- - --- -- -- - ----------------- -- ----- ------- - --- --------- ------ ---------- ----- ----- --- -------------------- -- - -------------------- ---
输出:
5050
结论
aiedu-sandbox 是一个非常有用的在线代码执行服务,可以帮助我们进行代码测试和学习。在实际开发中,我们可以使用它来测试后端接口的响应数据,或者用它来进行前端代码的调试和学习。我希望这篇文章能够帮助你更好地了解和使用 aiedu-sandbox,并在实践中取得更多的收获。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6005682181e8991b448e442a