Итак, я делаю приложение для геоинструмента, используя 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 принимают точечную нотацию?