2016-11-25 14 views
0

私はnodejsでブログを作成しようとしています。私は成功したmongooseにファイルとデータをアップロードすることができます。私の問題は:私はデータを編集することはできません。mongooseと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

ようこそ。あなたは正確なエラーを投稿できますか? – 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

関連する問題