Как получить желаемое значение? - PullRequest
0 голосов
/ 14 октября 2019

Я сейчас работаю над реактивным проектом. Я хочу отправить значение (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);
        }
    });
});

------------- view 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 голосов
/ 14 октября 2019

Вы должны использовать POST HTTP-запрос.

В соответствии с MDN GET и MDN POST ,

Запросы с использованиемGET должен только извлекать данные.

Метод HTTP POST отправляет данные на сервер.

Пример можно найти в Axios README

0 голосов
/ 14 октября 2019

Отправьте свои данные в параметре запроса вашего 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);
    }
});
});
...