无法使用Node / Express在POST请求中发送正确的响应

时间:2019-04-05 04:13:04

标签: node.js express

我正在对Express.js中的端点发出POST请求,并且无法在响应中发送回正确的数据:

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 :(得分:0)

事实证明,问题在于它正在兑现承诺。

我不确定在发送响应之前如何解决Promise,但是我已经能够通过以下方式在客户端上处理Promise:

    response.json().then(data => {
      // data.url
    });
相关问题