【问题标题】:How can I get data from post request?如何从发布请求中获取数据?
【发布时间】:2025-12-13 03:45:01
【问题描述】:

我尝试做的是从同一站点发布数据并从中创建新订单(单击提交按钮时)。我的 req.body 中没有任何信息,我怀疑是我的 ejs 出了问题,非常感谢任何反馈。

我的 ejs 文件:


<h1>Orders</h1>

<p>Orders from Coffee eShop.</p>

<pre><%#= JSON.stringify(res, null, 4) %></pre>
<form class="label-left" method="post">
    <table>
        <tr>
            <th>Order ID </th>
            <th>Customer ID </th>
            <th>Name </th>
            <th>Date </th>
            <th>Product quantity </th>
            <th>Status </th>
        </tr>
    <% for (const row of res) { %>
        <tr>
            <td><%= row.order_id %></td>       <!-- trying to post this -->
            <td><%= row.customer_id %></td>    <!-- trying to post this -->
            <td><%= row.customer_name %></td>  <!-- trying to post this -->
            <td><%= row.order_date %></td>     <!-- trying to post this -->
            <td><%= row.produkter_antal %></td><!-- trying to post this -->
            <td><%= row.order_status %></td>   <!-- trying to post this -->
        </tr>
    <% }; %>
    </table>
    <br>
    <td><input type="submit" name="doit" value="Create new order"></td> <!-- trying to get this work -->
    <br><br>
    <a href="/eshop/customer" id="customerlink">Customers</a>
</form>
<br>

<%- include("footer"); %>

还有我的js文件:

router.get("/order/:id", async (req, res) => {
    let id = req.params.id;
    let data = {
        title: `Customers order ${id} ${sitename}`,
        ordernummer: id
    }

    data.res = await bank.showCustomerOrder(id);

    res.render("eshop/order", data);
});

router.post("/order/:id", urlencodedParser, async (req, res) => {
    console.log(req.body);
    // this doesnt work... I dont get any info in req.body here
});

【问题讨论】:

  • 我不确定我是否理解;你是如何发布它的?我看到一个没有输入字段的&lt;form&gt;
  • 谢谢,原来如此。

标签: html node.js express ejs


【解决方案1】:

只有成功表单控件(inputbuttontextareaselect)会为表单提交提供数据。

您拥有的唯一表单控件是提交按钮,但由于它没有name 属性,它不会成功

添加一些表单控件(可能你想要一些&lt;input type="hidden" ...&gt; 元素)。

您可能会发现 MDN's form guide 及其对 using forms with Express 的指南很有用。

【讨论】:

  • 感谢您的快速回复,我知道我的 ejs 文件有问题,这就解释了原因