2017-05-03 5 views
-1

私はサーバー側にノードjsを、クライアント側に角とhtmlを使用しています。マルチインサートto mongoose

サーバー側にデータを挿入しました。私が同じページにいて、新しいデータをmongooseに挿入したいときは、サーバーを再起動してそれを動作させる必要があります。

どのようにコードを書き直して再起動できますか?または以前のリクエストをクリーニングする別の方法がある場合は、

var savePersonal = new personal({ 
       email : myemail, 
       Tags : mytags, 
       Title: request.body.Title, 
       Info: request.body.Info, 
       Category: request.body.Category, 
       file: "none", 
       Recommendation:request.body.Recommendation, 
       myDate:tempDate 
       }); 
       savePersonal.save(function(error, result) { 

       if (error) { 
        console.error(error); 
       } else { 
        console.log("save"); 
        request = ""; 
        response.redirect('http://localhost:8080/getPrivateData.html'); 
       } 
      }) 
+0

コードを表示していますか? – Alex

+0

@Alexボタンを押しているページでもう一度押すと - サーバーがスタックしている – user193239

+0

問題が上記のコードの場合はリダイレクトされていると思われます.HTMLページではなくルートにリダイレクトしてみてくださいresponse.redirect( '/ home')) –

答えて

1

あなたは、たとえば、updateメソッドを使用する必要がありますデシベルで新しいドキュメントを作成しない場合:

var mongoose = require('mongoose'); 
var personal = mongoose.models.personal; 

personal.find({}, function(err, users){ 
    if(err) throw err; 

    var data = { 
       email : myemail, 
       Tags : mytags, 
       Title: request.body.Title, 
       Info: request.body.Info, 
       Category: request.body.Category, 
       file: "none", 
       Recommendation:request.body.Recommendation, 
       myDate:tempDate 
       }; 

    if(users.length) 
     personal.create(data, function(err, results){...}); 
    else 
     personal.update({_id: users[0]._id}, data, function(err, results){...}); 
}) 

これは非常にラフなコードが、主なアイデアです: 1)をチェックしていますcolletion empty 2)空の場合は保存/作成 3)空でない場合は更新を使用しますが、更新する場合は文書の_idを知っている必要があります。私は最初の要素(users [0] ._ id)のidを使用しています。

+0

ちょっと!ご回答有難うございます!私は新しいラインを作りたいと思っています - それはあなたにモデルを宣言してください – user193239

+0

ショーをさせてくれません。 – Sergaros

関連する問題