почему эта точечная запись дает разные результаты в ax ios и express - PullRequest
0 голосов
/ 19 июня 2020

Итак, я делаю приложение для геоинструмента, используя reactjs. Дизайн этой части таков, пользователь вводит название города. Отправка вызовет запрос post , и запрос будет l oop через список городов. json файл, чтобы найти совпадающий город, и вернет геолокацию города в таком формате

{
      "id": 6167865,
      "name": "Toronto",
      "state": "",
      "country": "CA",
      "coord": {
        "lon": -79.416298,
        "lat": 43.700111
      }
}

почтовый запрос во внешнем интерфейсе:

axios.post('http://localhost:5000/weather/loggedin/citySearch',searchCity)
.then((res)=>{
console.log(res.data.coord)//<--here
})

почтовый запрос на стороне сервера (бэкэнд):

router.post('/loggedin/citySearch',(req,res)=>{
    let cityname = req.body.cityName
    let countryname = req.body.country
    fs.readFile('../public/weatherdata/citylist.json', (err,data)=>{
        if(err){
            console.log(err)
            res.send('Wrong.')
        }else{

            user_info.cityName = cityname
            let selected_city=(JSON.parse(data)).filter(i=>i.name===cityname && i.country===countryname)
            console.log(selected_city[0].coord)//<--and here
            res.json(selected_city[0])
        }
    })

})

Может кто-нибудь сказать мне, почему я получаю разные результаты при использовании

console.log(res.data.coord) //used at axios and it returns the coordinates

против

console.log(res.selected_city[0].coord) //used at server.js and it returns undefined

Мне было интересно, по-разному ли ax ios и express принимают точечную нотацию?

1 Ответ

0 голосов
/ 19 июня 2020

Не обращайте внимания на вопрос, я никогда не помещал selected_city [0] в свой код

...