Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法读取属性';路径';未定义节点js multer的定义_Javascript_Node.js_Mongodb_Express_Multer - Fatal编程技术网

Javascript 无法读取属性';路径';未定义节点js multer的定义

Javascript 无法读取属性';路径';未定义节点js multer的定义,javascript,node.js,mongodb,express,multer,Javascript,Node.js,Mongodb,Express,Multer,我正在开发一个应用程序,让用户创建一个营地,然后编辑它。最近我添加了上传图像功能,它与创建路线配合良好,但在编辑路线上它不允许用户将其留空,因为如果出现这种情况,它会给出未定义的错误。你有什么想法我可以解决这个问题。我没有太多经验,所以需要任何帮助欢迎 这是js代码 var express = require("express"); var router = express.Router({mergeParams:true}); var Campground = require("../mode

我正在开发一个应用程序,让用户创建一个营地,然后编辑它。最近我添加了上传图像功能,它与创建路线配合良好,但在编辑路线上它不允许用户将其留空,因为如果出现这种情况,它会给出未定义的错误。你有什么想法我可以解决这个问题。我没有太多经验,所以需要任何帮助欢迎

这是js代码

var express = require("express");
var router = express.Router({mergeParams:true});
var Campground = require("../models/campground");
var middleware=require("../middleware");
const multer = require('multer');


const storage = multer.diskStorage({
    destination: function(req, file, cb) {
        cb(null, './uploads/');
    },
    filename: function(req, file, cb) {
        const now = new Date().toISOString(); const date = now.replace(/:/g, '-'); cb(null, date + file.originalname);
    }
});

  const fileFilter = (req, file, cb) => {
    // reject a file
    if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png') {
      cb(null, true);
    } else {
      cb(null, false);
    }
  };

  const upload = multer({
    storage: storage,
    limits: {
      fileSize: 1024 * 1024 * 5
    },
    fileFilter: fileFilter
  });
//edit
router.get("/:id/edit",middleware.checkCampgroundOwnership, function(req,res){


            Campground.findById(req.params.id,function(err,foundCampground){



                      res.render("campgrounds/edit",{campground :foundCampground});


              });



});

router.put("/:id",upload.single('image'),middleware.checkCampgroundOwnership, function(req,res){
    var name = req.body.name;
    var image = req.file.path;
    var description = req.body.description;
    var price = req.body.price

    var upCampground = {price:price,name:name, image: image ,description:description};
    Campground.findByIdAndUpdate(req.params.id,upCampground,function(err,updatedCamp){
        if(err){
            res.redirect("/campgrounds");
        }
        else{
            res.redirect("/campgrounds/"+req.params.id);
        }
    })
}); 
这是ejs的

<%-include ('../partials/header') %>
<div class="container">

    <h1 style="text-align: center;"> Edit a <%= campground.name%></h1>
    <div style="width: 30%; margin: 25px auto;">
        <form action="/campgrounds/<%=campground._id%>?_method=PUT" enctype="multipart/form-data" method="POST">
            <div class="form-group">
            <input class="form-control" type="text" name="name" value="<%= campground.name%>">
            </div>
            <div class="form-group">
                <input class="form-control" type="number" name="price" value="<%= campground.price%> min="0.01" step="0.01"">
                </div>
            <div class="form-group">
            <input class="form-control" type="file" name="image" value="\<%= campground.image%>">
            </div>
            <div class="form-group">
                <input class="form-control" type="text" name="description" value="<%= campground.description %>">
            </div>
            <div class="form-group">
            <button class="btn btn-primary btn-large btn-block">Submit</button>
        </div>
        </form>
        <a href="/campgrounds">Go back</a>
        </div>



</div>
<%-include ('../partials/footer') %> 

编辑
提交

如果用户可以将文件留空,则意味着您需要设置一个条件,以检查文件是否存在,如If(req.file)您好,谢谢。现在它可以工作了,但问题是图像现在是空白的。我应该使用其他状态,但我不知道如何在编辑显示之前获取现有图像。如果您能帮助我,这将意味着很多。谢谢您何时空白?当用户不上传时?好的,这是由你决定的,你想在数据库中存储什么在这种情况下,我想存储与我找到的解决方案相同的图像谢谢你的帮助。这很明显,但idk为什么我被卡住了。