【问题标题】:How to get the post request params in express server?如何在快递服务器中获取发布请求参数?
【发布时间】:2020-12-09 16:58:57
【问题描述】:

以下是使用 Angular 服务发布产品的代码。 在这里,我将产品作为正文传递


  addProduct(product): Observable<any> {
    return this.http.post<Observable<any>>(
      `http://localhost:4401/api/products`,
      {
        product,
      }
    );
  }


但是当我尝试在我的快速服务器中访问它时,我得到了一个未定义的结果。

app.post("/api/products", async (req, res) => {
  console.log("req :", req.body);
});

GETDELETE 等其他动词工作正常。

以下也可以正常工作:

app.get("/api/products/:id", async (req, res) => {
  try {
    const responseData = await db.get(req.query.id);

    res.json({ product: responseData  });
  } catch (e) {
    console.log(e);
  }
});

但是 POST 动词中的参数在 express 服务器中没有被接收到。

【问题讨论】:

  • 这能回答你的问题吗? req.body empty on posts
  • 实际上正文解析器已被弃用。我用穆尔特。有其他选择吗?

标签: javascript node.js angular


【解决方案1】:

为了解析 json-payload,您需要设置适当的解析器。您可以使用 express 的内置解析器来执行此操作:

const express = require('express');
const app = express();
app.use(express.json());

app.post("/api/products", async (req, res) => {
  console.log("req :", req.body);
});

【讨论】:

  • 很高兴为您提供帮助,请不要忘记点击左侧的复选标记来支持/接受我的回答。
猜你喜欢
  • 2016-01-03
  • 1970-01-01
  • 2020-06-07
  • 2012-03-24
  • 1970-01-01
  • 2019-02-16
  • 1970-01-01
  • 2014-08-17
  • 2016-08-17
相关资源
最近更新 更多