Javascript 使用GET路由将变量从ReactJS前端传递到NodeJS后端
我正在开发一个react应用程序,试图找到一种方法,将我在前端Question.js中定义的变量传递到后端server.js,以便我可以发出不同的查询。我有密码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
//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}` });
});
});
});