在这个问题上需要帮助: 处理涉及代码编辑器和评估USER代码的项目。
在我的后端(Express)上创建了一个路由和一个函数,其中该函数接受用户编写的代码,计算并返回其值。
正在使用来自前端(REACT)的axios进行后期请求,以便对用户代码进行评估,并将响应发送回前端。
我所取得的成就: 通过邮件请求将用户代码发送到后端。 代码在后端使用沙箱进行评估。
我遇到的问题是什么? 将响应发送回前端。 post req没有带回回复。
下面是代码:任何想法/反馈?
BACKEND:
const express = require('express');
const codeRoutes = express.Router();
const codeHelper = require('../services/code/code-helper');
codeRoutes.post('/', codeHelper.codeEval, (req, res) => {res.json({
data: res.result
})
});
module.exports = codeRoutes;
帮助功能:
const vm = require('vm');
let codeEval = (req, res) => {
let result;
let code = req.body.code;
const sandbox = {};
vm.createContext(sandbox);
result = vm.runInContext(code, sandbox);
console.log(result); // this does console.log in the terminal
return result;
}
module.exports = { codeEval };
FRONTEND:
handleExecuteCode = (code) => {
axios.post('/code', {
code: code,
}).then(res => {
console.log('frontend received--->', res)
}).catch(err => console.log(err));
}
<button onClick={() =>
this.handleExecuteCode(this.state.code)}>EXECUTE</button>
答案 0 :(得分:0)
实际上只是想通了。我的设置是正确的。我没有在我的帮助函数中使用和调用next()因此它没有返回任何东西。我刚刚测试过并且有效。 :)