Как получить данные с сервера в браузер - PullRequest
0 голосов
/ 05 августа 2020

В node js я сделал этот api:

app.get("/user", (req, res) => {
    res.send('my data from server')
});

Итак, теперь, когда я получаю данные, используя:

fetch('http://localhost:1000/user', {
    method: "GET",
 })
   .then(data => console.log(data))
   .catch((error) => {
   console.error('Error:', error);
});

Ожидаю в console.log(data) кроме:

Response {type: "cors", url: "http://localhost:1000/user", redirected: false, status: 200, ok: true, …}
body: (...)
bodyUsed: false
headers: Headers {}
ok: true
redirected: false
status: 200
statusText: "OK"
type: "cors"
url: "http://localhost:1000/user"
__proto__: Response

и: data: 'мои данные с сервера', поэтому в конце я ожидаю что-то вроде этого:

Response {type: "cors", url: "http://localhost:1000/user", redirected: false, status: 200, ok: true, …}
data: 'my data from server'
body: (...)
bodyUsed: false
headers: Headers {}
ok: true
redirected: false
status: 200
statusText: "OK"
type: "cors"
url: "http://localhost:1000/user"
__proto__: Response

Вопрос: Почему я не могу получить данные с сервера, как я ожидал?

Ответы [ 2 ]

2 голосов
/ 05 августа 2020

Вы забыли извлечь тело.

Примесь Body определяет следующие методы извлечения тела (реализуемые как Request, так и Response). Все они возвращают обещание, которое в конечном итоге разрешается с фактическим содержанием.

В вашем случае это просто текст, но он также может быть JSON в зависимости от ответа вашего сервера.

fetch('http://localhost:1000/user', {
    method: "GET",
 })
   .then(response => response.text())
   .then(data => console.log(data))
   .catch((error) => {
   console.error('Error:', error);
});
0 голосов
/ 05 августа 2020
fetch('http://localhost:1000/user', {
    method: "GET",
 })
   .then(res => console.log(res.body))
   .catch((error) => {
   console.error('Error:', error);
});

Ваши данные внутри res.body !! (Я переименовал данные в res, поскольку это своего рода стандарт)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...