2016-11-25 71 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