Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用GET路由将变量从ReactJS前端传递到NodeJS后端_Javascript_Sql_Node.js_Reactjs - Fatal编程技术网

Javascript 使用GET路由将变量从ReactJS前端传递到NodeJS后端

Javascript 使用GET路由将变量从ReactJS前端传递到NodeJS后端,javascript,sql,node.js,reactjs,Javascript,Sql,Node.js,Reactjs,我正在开发一个react应用程序,试图找到一种方法,将我在前端Question.js中定义的变量传递到后端server.js,以便我可以发出不同的查询。我有密码 //Question.js state = { data: null }; componentDidMount() { this.callBackendAPI() .then(res => this.setState({ data: res.express

我正在开发一个react应用程序,试图找到一种方法,将我在前端Question.js中定义的变量传递到后端server.js,以便我可以发出不同的查询。我有密码

//Question.js

state = {
        data: null
    };

    componentDidMount() {
        this.callBackendAPI()
            .then(res => this.setState({ data: res.express }))
            .catch(err => console.log(err));
    }

    callBackendAPI = async () => {
        const response = await fetch('/express_backend');
        const body = await response.json();

        if (response.status !== 200) {
            throw Error(body.message)
        }
        return body;
    };

服务器可能应该从路由处理程序定义中分离数据库连接。此外,还可以使用查询参数根据问题在数据库中的id访问问题

//问题.js callBackendAPI=async=>{ const response=wait fetch`/express_backend?questionId=1`; const body=wait response.json; 如果response.status!==200{ 抛出Errorbody.message } 返回体; }; //server.js app.get'/express\u backend',req,res=>{ const{questionId}=req.query; //按id查询数据库中的问题 };
您的路由处理程序可能也不应该在数据库连接回调中定义,您正在使用的数据库包是什么?您需要使用参数化查询来检索您的questions@coldcav如果你觉得答案有用,请接受。
//server.js

con.connect(function (err) {
    if (err) throw err;
    con.query("SELECT question FROM s1questions WHERE ID = 1", function (err, result, fields) {
        if (err) throw err;
        app.get('/express_backend', (req, res) => {
            var x = JSON.stringify(result[0].question);
            res.send({ express: `${x}` });
        });
    });
});