我如何获得想要的价值?

时间:2019-10-14 12:07:04

标签: reactjs express react-router axios router

我目前正在做一个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

2 个答案:

答案 0 :(得分: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);
    }
});
});

答案 1 :(得分:0)

您必须使用 <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> <property name="locations"> <list> <value>classpath*:module.properties</value> </list> </property> <property name="ignoreUnresolvablePlaceholders" value="true" /> <property name="ignoreResourceNotFound" value="true" /> <property name="searchSystemEnvironment" value="true" /> <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" /> </bean> HTTP请求。

根据MDN GETMDN POST

  

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

     

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

您可以在Axios README

上找到示例