axios возвращает объект вместо массива

#node.js #express #axios

Вопрос:

Я пытаюсь создать сервер с помощью express. Для этого мне нужно получить данные из конечной точки, которая должна возвращать массив, но когда я пытаюсь получить их с помощью axios, происходит что-то странное. Чтобы объясниться, мне нужно показать вам код:

 const express = require('express')
const app = express();
const port = 8080;
const endpoint = "https://neelpatel05.pythonanywhere.com/";
const axios = require('axios');

app.get('/', (req, res) => {
    axios.get(endpoint).then((data) => {
       res.send(data.data)
       console.log(typeof data.data)
    }).catch((err) => console.log(err));
        [...]

})

app.listen(port, ()=> {
    console.log("listen to port 3000")
})
 

В res.send(data.data) браузере правильно отображается массив и все его объекты. Но если я сделаю typeof из data.data этого возврат object . Я застрял, так как не могу манипулировать данными так, как мне хочется. Я уже пытался Object.values() , но безуспешно.

Надеюсь, я ясно выразился. Любые идеи о том, что происходит, очень приветствуются.

Я оставляю здесь песочницу для всех, кто хочет увидеть результат:

https://codesandbox.io/s/summer-snow-vijnp?file=/src/index.js:0-426

Комментарии:

1. Массивы показывают typeof «объект». В этом нет ничего плохого. Массив не является отдельным фундаментальным типом в Javascript. Если вы хотите посмотреть, является ли это массивом, вы можете это сделать Array.isArray(someData) .