从“body-parser”导入bodyParser; 从“快递”进口快递; 从“猫鼬”导入猫鼬; 从“ejs”导入ejs; 从“multer”导入 multer;
const app = express(); 常量端口 = 3000;
app.set("视图引擎", "ejs"); app.use(bodyParser.urlencoded({ 扩展: true })); app.use(express.json()); app.use(express.static("public"));
图片上传
配置 Multer const 存储 = multer.diskStorage({ 目的地:(请求,文件,cb)=> { cb(null, "./上传"); }, 文件名:(请求,文件,cb)=> { cb(null, file.fieldname + "" + Date.now + "" + file.originalname); }, });
常量上传= multer({ 贮存, });
连接MongoDB数据库
mongoose.connect("mongodb://127.0.0.1:27017/restaurantDB") .then(() => { console.log("数据库创建成功"); }) .catch((错误) => { comsole.log(错误); });
const ProductSchema = new mongoose.Schema({ _ID: { 类型:数字, 要求:真实, }, 姓名: { 类型:字符串, 要求:真实, }, 描述: { 类型:字符串, 要求:真实, }, 价格: { 类型:数字, 必填:真实 }, 类型: { 类型:字符串, 必填:真实 }, 图像路径:{ 类型:字符串, 必填:真实 }
}); const Product = mongoose.model("产品", ProductSchema);
app.get("/", (req, res) => { res.render("index.ejs"); }); app.get("/about", (req, res) => { res.render("about.ejs"); });
app.get("/contact", (req, res) => { res.render("contact.ejs"); }); app.get("/pizza", (req, res) => { res.render("pizza.ejs"); }); app.get("/burgur", (req, res) => { res.render("burgur.ejs"); }); app.get("/饮料", (req, res) => { res.render("饮料.ejs"); }); app.get("/addproduct", (req, res) => { res.render("addproduct.ejs"); });
app.get("/product", (req, res) => { res.render("product.ejs"); });
app.post("/addproduct", upload.single("图片"), (req, res) => { const id = req.body["id"]; const name = req.body["name"]; const 描述 = req.body["描述"]; const 价格 = req.body["价格"]; const type = req.body["type"]; const 文件 = req.file;
if (!file) { 处理文件上传错误 return res.status(400).send("文件上传失败"); }
常量产品 = 新产品({ _id: id, 姓名: 姓名, 描述:描述, 价格: 价格, 类型: 类型, 图片路径:
});/uploads/${file.originalname}
产品.save(); res.redirect("/产品")
});
app.listen(端口, () => { 控制台.log(
); });Server is running on port ${port}
这是我的代码并收到此错误 类型错误:无法读取未定义的属性(读取“图像”) 请更正此代码并解释为什么会发生这种情况
diskStorage 是一个类,所以
const storage = new multer.diskStorage({
destination: (req, file, cb) => {
cb(null, "./uploads");
}, filename: (req, file, cb) => {
cb(null, file.fieldname + "" + Date.now + "" + file.originalname);
},
});
当您提出任何问题时,请格式化代码,并提供所有必要的详细信息