我如何获得我想要的值?

问题描述 投票:0回答:2

我目前正在从事React项目。我想通过视图中的axios将value(1001)发送到服务器,但是服务器没有收到该值。我需要你的帮助。谢谢。

-----------------查看文件----------------------------- ----

handleChange(e) {
    //this.setState({option: e.target.value});
    axios
        .get('/status/bus_info',{
            'data': e.target.value
        })
        .then(function(requset) { 
            console.log(requset);
            requset = requset.config.data;
            console.log(requset);
    })
}

render(){
    return(
        <>
        <div className="selwrap floatL">

            <i className="select_icon"><img src={require('img/icon/icon_handle_g.png')} alt="hi"/></i>selectBox
            <select className="transparentInput" value={this.state.option.value} onChange={this.handleChange}>
            {this.state.mariaComData.map((maria, i) => (
                <option id={maria.COMPANY_ID} key={i} value={maria.COMPANY_ID}>{maria.NAME}</option>

            ))}
            </select>
        </div>
        </>
    )
}

-----------------服务器文件----------------------------- ----

router.get('/status/bus_info', (req, res) => {
    //console.log(req.data);
   // res.json(req.data)
    let where = '';

    if(!req)
        where = `where company_id = ${data}`;

    db.query(`select * from myTable${where}`, (err, rows) => {
        if (!err) {
            res.send(rows);
        } else {
            res.send(err);
        }
    });
});

-------------查看console.log ------------]

{data: Array(26), status: 200, statusText: "OK", headers: {…}, config: {…}, …}
config:
adapter: ƒ xhrAdapter(config)
baseURL: "http://localhost:4000/"
data: "1001"
headers: {Accept: "application/json, text/plain, */*"}
maxContentLength: -1
method: "get"
timeout: 0
reactjs express react-router axios router
2个回答
0
投票

在api的查询参数中发送数据

axios.get(`/status/bus_info?data:${e.target.value}`)
.then(function (response) {
// handle success
console.log(response);
})
.catch(function (error) {
// handle error
console.log(error);
})
.finally(function () {
// always executed
});

以及您的api

router.get('/status/bus_info', (req, res) => {
const {data} = req.query;
let where = '';

if(data)
    where = ` where company_id = ${data}`;

db.query(`select * from myTable${where}`, (err, rows) => {
    if (!err) {
        res.send(rows);
    } else {
        res.send(err);
    }
});
});

0
投票

您必须使用POST HTTP请求。

根据MDN GETMDN POST

使用GET的请求应仅检索数据。

HTTP POST方法将数据发送到服务器。

您可以在Axios README上找到示例

© www.soinside.com 2019 - 2024. All rights reserved.