невозможно отправить правильный ответ в запросе POST с Node / Express - PullRequest
0 голосов
/ 05 апреля 2019

Я выполняю POST-запрос к конечной точке в Express.js и не могу отправить правильные данные в ответе:

router.post("/", upload.single("avatar"), jsonParser, async (req, res) => {
  const imageUrl = req.file.location;
  const userId = req.file.originalname;  
  try {
    const {
      result: { ok }
    } = await updateOne(
      users,
      { _id: mongo.ObjectID(userId) },
      { $set: { avatarUrl: imageUrl } }
    );
    if (ok === 1) {
      console.log("req.file.location", req.file.location);
      res.json({ url: req.file.location });
    }
  } catch (error) {
    console.warn("error updating avatarUrl", error);
  }
});

req.file.location правильно выходит из системы, но когдаЯ выписываю ответ в клиенте, затем получаю "type": "default", "status": 200, "ok": true, "headers"... Почему ответ не просто дает мне указанный {url: req.file.location}, который я пытаюсь вернуть?Откуда эти другие данные вообще берутся?

1 Ответ

0 голосов
/ 05 апреля 2019

Оказывается, проблема в том, что он возвращает обещание.

Я не уверен, как разрешить обещание перед отправкой ответа, но я смог обработать обещание на стороне клиента, выполнив:

    response.json().then(data => {
      // data.url
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...