Node.js 节点js中的严重错误-“;错误:没有这样的文件或目录";

Node.js 节点js中的严重错误-“;错误:没有这样的文件或目录";,node.js,mongoose,formidable,Node.js,Mongoose,Formidable,我正在创建一个博客节点和上传照片使用强大的软件包。 在博客模式中,我将photo数据类型作为缓冲区,ContentType作为字符串 这是我的控制器方法 exports.create = (req, res) => { let form = new formidable.IncomingForm(); form.keepExtensions = true; form.parse(req, (err, fields, files) => { if (err) {

我正在创建一个博客节点和上传照片使用强大的软件包。 在博客模式中,我将photo数据类型作为缓冲区,ContentType作为字符串

这是我的控制器方法

exports.create = (req, res) => {
  let form = new formidable.IncomingForm();
  form.keepExtensions = true;
  form.parse(req, (err, fields, files) => {
    if (err) {
      return res.status(400).json({
        error: "Image could not upload",
      });
    }

    const { title, body, categories, tags } = fields;

    if (!title || !title.length) {
      return res.status(400).json({
        error: "Title is required",
      });
    }

    if (!body || body.length < 200) {
      return res.status(400).json({
        error: "Content is too short",
      });
    }

    if (!categories || !categories.length === 0) {
      return res.status(400).json({
        error: "Atleast one category is required",
      });
    }

    if (!tags || !tags.length) {
      return res.status(400).json({
        error: "Atleast one tag is required",
      });
    }

    let blog = new Blog();
    blog.title = title;
    blog.body = body;
    blog.excerpt = smartTrim(body, 120, " ", " ...");
    blog.slug = slugify(title).toLowerCase();
    blog.mtitle = `${title} | ${process.env.APP_NAME}`;
    blog.mdesc = stripHtml(body.substring(0, 160));
    blog.postedBy = req.user._id;

    // categories and tags
    let arrayOfCategories = categories && categories.split(",");
    let arrayOfTags = tags && tags.split(",");

    if (files.photo) {
      if (files.photo.size > 10000000) {
        return res.status(400).json({
          error: "Image should be less than 1 MB in size",
        });
      }
      blog.photo.data = fs.readFileSync(files.photo.path);
      blog.photo.path = __dirname + "/uploads/" + files.photo.name;
      blog.photo.contentType = files.photo.type;
    }

    blog.save((err, result) => {
      if (err) {
        return res.status(400).json({
          error: errorHandler(err),
        });
      }
      // res.json(result);
      Blog.findByIdAndUpdate(
        result._id,
        {
          $push: { categories: arrayOfCategories },
        },
        { new: true }
      ).exec((err, result) => {
        if (err) {
          return res.status(400).json({
            error: errorHandler(err),
          });
        } else {
          Blog.findByIdAndUpdate(
            result._id,
            { $push: { tags: arrayOfTags } },
            { new: true }
          ).exec((err, result) => {
            if (err) {
              return res.status(400).json({
                error: errorHandler(err),
              });
            } else {
              res.json(result);
              res.sendFile(__dirname + "/blog");
            }
          });
        }
      });
    });
  });
};
exports.create=(请求、回复)=>{
let form=新的强大的。IncomingForm();
form.keepExtensions=true;
解析(请求,(错误,字段,文件)=>{
如果(错误){
返回res.status(400).json({
错误:“图像无法上载”,
});
}
常量{title,body,categories,tags}=字段;
如果(!title | |!title.length){
返回res.status(400).json({
错误:“需要标题”,
});
}
如果(!body | | body.length<200){
返回res.status(400).json({
错误:“内容太短”,
});
}
如果(!categories | |!categories.length==0){
返回res.status(400).json({
错误:“至少需要一个类别”,
});
}
如果(!tags | |!tags.length){
返回res.status(400).json({
错误:“至少需要一个标记”,
});
}
让blog=newblog();
blog.title=标题;
blog.body=body;
blog.extracpt=smartTrim(body,120,“,”);
blog.slug=slugify(title.toLowerCase();
blog.mtitle=`${title}}${process.env.APP_NAME}`;
blog.mdesc=stripHtml(body.substring(01160));
blog.postedBy=req.user.\u id;
//类别和标签
设arrayOfCategories=categories&&categories.split(“,”);
让arrayOfTags=tags&&tags.split(“,”);
if(files.photo){
如果(files.photo.size>10000000){
返回res.status(400).json({
错误:“图像大小应小于1 MB”,
});
}
blog.photo.data=fs.readFileSync(files.photo.path);
blog.photo.path=\uuu dirname+“/uploads/”+files.photo.name;
blog.photo.contentType=files.photo.type;
}
blog.save((错误,结果)=>{
如果(错误){
返回res.status(400).json({
错误:errorHandler(err),
});
}
//res.json(结果);
Blog.findByIdAndUpdate(
结果.\u id,
{
$push:{类别:arrayOfCategories},
},
{新:正确}
).exec((错误,结果)=>{
如果(错误){
返回res.status(400).json({
错误:errorHandler(err),
});
}否则{
Blog.findByIdAndUpdate(
结果.\u id,
{$push:{tags:arrayOfTags}},
{新:正确}
).exec((错误,结果)=>{
如果(错误){
返回res.status(400).json({
错误:errorHandler(err),
});
}否则{
res.json(结果);
res.sendFile(uu dirname+“/blog”);
}
});
}
});
});
});
};
在调用我的API时,我得到了响应200,但我也得到了一个错误,即不存在这样的文件或目录。 到目前为止,我所理解的是,我必须在节点文件系统中给出一个路径。我已经这样做了,但我仍然得到同样的错误。谁能帮我纠正我的错误

如果我请求
/api/blog/photo/:slug
,我就会得到图像。我还可以看到我的照片和我的博客一起保存在mongo DB中。但是我可以在我的前端看到这张照片