处理向用户提供算法挑战的应用程序。在服务器端(Django),Algorithm模型有三个文件字段(一个用于markdown描述,一个用于JavaScript(.js)解决方案,另一个用于测试(也是.js))。
我将内容作为JSON提供给React前端,使用react-ace
来收集用户尝试解决此挑战。
我希望能够接受提交的代码并对其进行测试(使用expect.js
),但在两个方面遇到问题:
首先,我应该在什么环境中运行前端的用户提供的代码?我假设不在eval
或new Function
- 网络工作者会解决这个问题(我还没有设置一个......)?
其次,我应该如何将从服务器发送的JS测试(目前以字符串形式)与从用户捕获的代码集成?
另一个打嗝:即使在运行eval
时,我也无法获得如下所示的序列化代码来获取客户端上存在的expect
变量。
expect(1).toEqual(1);
最好的情况,我想在我的Ace编辑器中为用户提供预先命名的功能,当提交时,我可以运行测试。有任何想法吗?谢谢!