Edit

要使用Put之前,在index.js中require method-overrise const methodOverride = require('method-override') app.use(methodOverride('_method'))   <form action="/products/<%=product._id%>?_method=PUT" method="POST">  
index.js 

const methodOverride = require('method-override')
  app.use(methodOverride('_method'))
app.get('/products/:id/edit', async (req, res) => {
    const { id } = req.params;
    const product = await Product.findById(id);
    res.render('products/edit', { product })
})

app.put('/products/:id', async (req, res) => {
    const { id } = req.params;
    const product = await Product.findByIdAndUpdate(id, req.body, { runValidators: true, new: true });
    res.redirect(`/products/${product._id}`);
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Edit product</title>
</head>

<body>
    <h1>Edit a product </h1>

    <form action="/products/<%=product._id%>?_method=PUT" method="POST">
        <label for="name">Name</label>
        <input type="text" name="name" id="name" placeholder="product name" value="<%=product.name%>">
        <label for="price">price</label>
        <input type="number" name="price" id="price" placeholder="price" value="<%=product.price%>">
        <label for="category">Select category</label>
        <select name="category" id="category">
            <option value="fruit">fruit</option>
            <option value="vegetable">vegetable</option>
            <option value="dairy">dairy</option>
        </select>
        <button>Submit</button>
        <!-- Submit按钮一旦点击,提交页面/products, post,跟index.js里面的app.post('/products',。。。)连接着 -->
    </form>

    <a href="/products/<%=product._id%>">Cancel</a>.   //cancel回到待编辑页面

</body> </html>

Edit

Edit

上一篇:Win32 SDK(四)Edit控件用法


下一篇:关于程序打包软件“NSIS”的使用以及程序发布时可能出现的问题