2016-07-02 2 views
2

平均を使用してアプリケーションを作成しようとしています。私は私のmongodbデータベースのスキーマにmongooseを使用しています。 String、Number、およびDateフィールドを含む1つのコレクションで、データベースに保存しようとするとエラーが発生します。使用によって入力される情報の一部は、数字と日付です。これは私にエラーを与え、私はそれを保存しないことに気付きます。質問:フォームの情報をキャプチャした後、StringからNumberに、StringからDateに変換する必要がありますか?もしそうなら、私は次のように、文字列から数値にカバーする日とのparseIntに文字列を変換するDate.parseを変換しようとしている:フォームからmongodbコレクション情報を保存するのが難しい

app.post('/api/show/post', authCheck, function(req, res) { 
    console.log("Entrada a post"); 
    console.log(req.body); 

    var ciaID = "  "; 
    req.body.moveid = Date.parse(req.body.movein); 
    req.body.open = Date.parse(req.body.open); 
    req.body.close = Date.parse(req.body.close); 

    req.body.number = parseInt(req.body.number); 
    req.body.estimateamount = parseInt(req.body.estimateamount); 
    req.body.balancedue = parseInt(req.body.balancedue); 

    mongoose.model('company').findOne({name: "test company"},   function(err,doc){ 
     var ObjectID = require('mongodb').ObjectID; 
      ciaID = new ObjectID(doc._id); 
    }); 

    var show = new Show(req.body); 


    show.created_at = Date(); 
    show.updated_at = Date(); 
    show.created_by = "username"; 
    show.updated_by = "username"; 

    show.save(function(err, doc){ 

     if (err) { 
     console.log(" the program all gets in here"); 
      return err 
     } 
     else { 

      res.status(201).json(doc);   
     }    
    }); 
}); 

私はまた、これらの値のいずれかを変換し、いずれの場合もそれをしないようにしようとしました働いた。私は文字列フィールドだけを含む他のコレクションを持っており、私はそれに何ら問題はありません。

私は

+0

mongodbがISOの日付フォーマットを受け入れるので、日付を保存する際に問題があるかもしれないので、これを試してみてください。crtDate = new Date(); var dateToSave = crtDate.toISOString(); – rroxysam

+0

ありがとうございます。ですから、私はここでは、データベースのフィールドをDateからStringに変更することをお勧めします。私は正しいですか? – user3538384

+0

あなたがdatを保存する際に問題がある場合は、あなたのモデルと保存する最終ショーオブジェクトを投稿してください。 – rroxysam

答えて

0

あなたがフォローアップのために作るrroxysamありがとうございました。あなたの最後の投稿のために、私は問題を発見しました。 mongodbとmongooseにDateとして定義されているフィールドがあり、フォームで間違って使われていました。 mongooseは私に完全性を保つためにそれを保存させません。愚かな間違い、本当にごめんなさい。もう一度あなたのお時間をありがとう。

0

コードの下に試してみて、確認し、事前にありがとう、何かアドバイスをお願いします:

req.body.moveid = new Date(req.body.movein); 
req.body.open = new Date(req.body.open); 
req.body.close = new Date(req.body.close); 
+0

ありがとうございます。私は試みたが、うまくいかなかった – user3538384

関連する問題