2016-11-25 55 views
0

我正在尝试使用nodejs创建博客。我可以上传文件和数据到猫鼬成功。我的问题是:我无法编辑数据。如何编辑猫鼬和nodejs文章

router.post('/admin/create-article',upload.any(), function(req,res,next){ 
    if(req.files){ 
     req.files.forEach(function(file){ 
      var filename = (new Date).valueOf() + "-" + file.originalname; 
      fs.rename(file.path, 'public/uploads/images/thumbnails/' + filename, function(err){ 
       if(err)throw err; 

         //save to mongoose 
         var newArticle = { 
          title:req.body.title, 
          featured_image:filename, 
          article_content:req.body.article_content, 
          created_at:moment().format('MMMM Do YYY, h:mm:ss a') 
         }; 

         Article.create(newArticle,function(err,result){ 
          if(err){ 
          } 
          res.json(result); 
         }); 

        }); 
     }); 

    } 
}); 

这是编辑(不工作):

router.put('/admin/article/:id/edit',upload.any(), function(req,res,next){                              
      if(req.files){ 
        req.files.forEach(function(file){ 
         var filename = (new Date).valueOf() + "-" + file.originalname; 

         fs.readFile(file.path, 'public/uploads/images/thumbnails/' + filename, function(err){ 
        //  if(err)throw err; 

            //save to mongoose 
            var editArticle = { 
             title:req.body.title, 
             featured_image:filename, 
             article_content:req.body.article_content, 
             created_at:moment().format('MMMM Do YYY, h:mm:ss a'), 
            }; 

            Article.findByIdAndUpdate(req.params.id, editArticle, function(err,article){ 
             if(err){ 
              rep.flash('error', err.message); 
              return res.redirect('/article/' + req.params.id); 
             } 
             req.flash('success','Articles updated successfully'); 
             console.log('success'); 
             res.redirect('/admin/articles/'); 
            }); 

           }); 


        }); 

      } 

}); 
+0

欢迎来到SO。你能发布确切的错误吗? – Dario

+0

我无法将内容更新到mongodb中。你能告诉我在编辑代码部分知道我错了什么吗? –

+0

你能更清楚吗?你有什么错误?或者只是没有错误?您是否尝试过调试代码? – Dario

回答

1

如果使用findByIdAndUpdate猫鼬命令,你应该使用$set操作。

... 
//save to mongoose 
var editArticle = { 
    title   : req.body.title, 
    featured_image : filename, 
    article_content: req.body.article_content, 
    created_at  : moment().format('MMMM Do YYY, h:mm:ss a'), 
}; 

Article.findByIdAndUpdate(req.params.id, {$set: editArticle}, ...); 
+0

谢谢。但它不工作。它在feature_image:filename中是错误的。但我不知道如何解决它。 –

+0

什么是错的?你有什么错误? – Dario