使用axios没有带来响应的POST请求

时间:2017-08-23 21:14:48

标签: javascript reactjs

在这个问题上需要帮助: 处理涉及代码编辑器和评估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>

1 个答案:

答案 0 :(得分:0)

实际上只是想通了。我的设置是正确的。我没有在我的帮助函数中使用和调用next()因此它没有返回任何东西。我刚刚测试过并且有效。 :)