Как получить статус 201 при загрузке файла?

#post #server-response

Вопрос:

Я создаю приложение react с помощью node.js (express amp;amp; multer) и mongodb. Когда я загружаю картинку — файл хранится в папке, а объект создается в mongodb, но я получаю статус 200 вместо 201. Что я должен добавить, чтобы получить правильный статус?

      fetch("http://localhost:8080/addItems", {
       method: "POST",
       body: data,

   })
     .then(res => res.status !== 201 ? setFileExistsError(true) : setFileExistsError(false))
     };

return(
<>
        {fileExistsError amp;amp; <p className="errorMsg">Item already exists</p>}
</>
)
 

Ответ №1:

Я попробовал отправить запрос с кодом статуса 201 на моем node.js — код реакции, и он сработал. Ваш node.js код, должен сообщить вашему коду реакции, что статус «201».

  1. Во-первых, с вашим node.js, это должно быть что-то вроде этого:
 app.post("/addItems", function(req, res){
  myCollection.create(req.body).then(() => {
    res.status(201).end();
  });
});
 
  1. затем, с вашим react.js (в вашем коде есть дополнительная запятая после data и дополнительная фигурная скобка под then . Вы также должны их почистить):
 fetch("/addItems", {
  method: "POST",
  body: data
})
.then ((res) => {
  if (res.status !== 201) {
    setFileExistsError(true);
  } else {
    setFileExistsError(false);
  }
})

return(
<>
   {fileExistsError amp;amp; <p className="errorMsg">Item already exists</p>}
</>
)