2017-08-23 22 views
0

コードエディタを使用し、USERのコードを評価するプロジェクトで作業してください。応答を持たないAxiosを使用したPOSTリクエスト

私のバックエンド(Express)にルートと関数を作成し、関数がユーザーの記述コードを取得し、その値を評価して返します。

フロントエンドからのアキシャル(REACT)を使用してバックエンドに投稿要求を出しているため、ユーザーコードがエバークされ、応答がフロントエンドに返されます。

私が達成したこと: 投稿コードを介してバックエンドにユーザーコードを送信します。 コードは、サンドボックスを使用してバックエンドで評価されます。

何が問題になっていますか? 応答をフロントエンドに送り返します。 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

あなたの急な設定は全く間違っています。バックエンドコード全体を投稿できますか?あなたはバックエンドでPOSTリクエストを受け取りますか? – lukaleli

+0

は実際にそれを理解しました。私の設定は正しいです。私は使用していなかったし、私のヘルパー関数でnext()を呼び出すので、何も返されませんでした。私はちょうどテストし、それは動作します。 – Ash

答えて

0

が実際にそれを考え出しました。私の設定は正しいです。私は使用していなかったし、私のヘルパー関数でnext()を呼び出すので、何も返されませんでした。私はちょうどテストし、それは動作します。 :)

関連する問題