【发布时间】:2022-11-19 14:32:03
【问题描述】:
我正在尝试从用户那里获取数据,然后将其添加到我的数据库中。但是每当我通过表单发送发布请求并尝试在请求正文中打印数据时,它都会显示“未定义”。
我尝试在网上寻找答案,但没有帮助。这个错误可能很愚蠢,但有人告诉我它可能是什么吗?
<form action="/products" method="POST">
<legend for="name">Name</legend>
<input type="text" name="name" id="name" placeholder="Enter Product Name" required><br><br>
<legend for="price">Price</legend>
<input type="text" name="price" id="price" placeholder="Enter Product Price" required><br><br>
<legend for="img">Image</legend>
<input type="text" name="img" id="img" placeholder="Enter Product Image URL"><br><br>
<legend for="img">Description</legend>
<textarea name="desc" id="desc" placeholder="Enter Product Description" rows="5" cols="50"></textarea><br><br>
<button type="submit">Submit</button>
</form>`enter code here`
这是主要的应用程序文件
const express=require("express");
const app=express();
const mongoose=require("mongoose");
const path=require("path");
const routes=require("./routes/ec-routes");
const seed=require("./seed");
app.use(express.json())
app.set("view engine","ejs");
app.set("views",path.join(__dirname,"views"));
mongoose.connect("mongodb://localhost:27017/e-commerce")
.then(()=>console.log("DB Connected"))
.catch((err)=>console.log(err));
app.use(express.static(path.join(__dirname,"public")));
app.use(routes);
app.use(express.urlencoded({extended:false}));
//seed();
app.get("/",(req,res)=>{
res.send("Home page");
});
app.listen(3000,(req,res)=>{
console.log("Up At 3000")
})
这是路由文件
const express=require("express");
const router=express.Router();
const Product=require("../models/product");
router.get("/products",async (req,res)=>{
const products=await Product.find({});
res.render("products/home",{products});
})
router.get("/products/new",(req,res)=>{
res.render("products/new");
})
router.post("/products",async (req,res)=>{
const product={
...req.body
}
console.log(req.body)
res.redirect("/products");
})
module.exports=router;
【问题讨论】:
-
你使用什么后端?这与后端有关。如果使用 node js 和 express,请检查是否配置了 body-parser
-
同意,HTML 看起来不错,这是后端问题。
-
请包括您的后端代码。什么是
/products? -
你发布的for本身应该不是问题。您需要将错误处理添加到您的server process
-
@PierreJanineh 先生,感谢您的回复,我更新了相关文件。
标签: javascript html css ejs