Запрос на выборку от React до Express не работает. Объекты недопустимы как дочерние элементы React - PullRequest
0 голосов
/ 14 апреля 2020

это запрос от реакции в приложении. js:

var data = fetch("/hi")
.then((res) => {
  res.text();
})
.then((data) => {
  return data;
});

это мой express ответ на запрос:

app.get("/hi", (req, res) => {
  res.send("hello!");
});

Я думал, что это должно вернуть строку к моей переменной данных, которую я хотел отобразить на главной странице реакции, но я получаю Объекты недопустимы как дочерний элемент React. ошибка. Я новичок, чтобы реагировать и погуглил весь гугл и не получил никакой информации, как исправить это для меня, поскольку я новичок, чтобы реагировать и express)))

PS: я использую функциональные компоненты

Ответы [ 2 ]

0 голосов
/ 14 апреля 2020
.then((res) => {
  res.text();
})

Вы вызываете метод text(), но вы ничего не сделали с возвращаемым значением (которое является обещанием). Вам нужно вернуть его, чтобы он был доступен в следующей части цепочки обещаний.

.then((res) => {
  return res.text();
})

или

.then((res) => res.text())
0 голосов
/ 14 апреля 2020

Когда вы отправляете с express, он отправляет объект ответа HTTP, подобный этому, для строки

res.status(200).send({ message: 'api.user.register.success' });

Вы получите такой объект

{
  data: {message: "api.user.register.success"}
  status: 200
  statusText: "OK"
  headers: {content-length: "39", content-type: "application/json; charset=utf-8"}
  config: {url: "http://localhost:3000/user/register", method: "post", data: "{"email":"test@test.asd","userName":"lordg","password":"asdasd1","passwordRepeat":"asdasd1 
  "}", headers: {…}, transformRequest: Array(1), …}
  request: XMLHttpRequest {readyState: 4, timeout: 0, withCredentials: false, upload: 
  XMLHttpRequestUpload, onreadystatechange: ƒ, …}
  __proto__: Object
}

Вам нужно Ищите переменную данных объекта ответа, чтобы получить доступ к "привет!" строка!

...