2017-03-22 11 views
0

最近、MEANスタックを使用して独自のRESTful APIを構築し始めました。ここまでは順調ですね。昨日、私はこのようになりますどのマングーススキーマを持っている...私が解決しようとしてきたが、何の成果は、今まで見られていない小さな問題へMongooseスキーマ、デフォルト値を持つネストされたオブジェクト

をぶつけ:

const hotelSchema = new mongoose.Schema({ 
    name: { 
     type: String, 
     required: true 
    }, 
    stars: { 
     type: Number, 
     min: 0, 
     max: 5, 
     "default": 0 
    }, 
    services: [String], 
    description: { 
     type: String, 
     "default": "No description" 
    }, 
    photos: [String], 
    currency: { 
     type: String, 
     "default": "Not specified" 
    }, 
    reviews: [reviewSchema], 
    rooms: [roomSchema], 
    location: { 
     address: { 
      type: String, 
      "default": "Not specified" 
     }, 
     // Always store coordinates longitude E/W, latitude N/S order 
     coordinates: { 
      type: [Number], 
      index: '2dsphere' 
     } 
    } 
}); 

そして、モデルインスタンスを作成する方法は次のとおりです。

Hotel 
     .create({ 
      name: req.body.name, 
      description: req.body.description, 
      stars: parseInt(req.body.stars, 10), 
      services: _splitArray(req.body.services), 
      photos: _splitArray(req.body.photos), 
      currency: req.body.currency, 
      location: { 
       address: req.body.address, 
       coordinates:[ 
        parseFloat(req.body.lng), 
        parseFloat(req.body.lat) 
       ] 
      } 

すべてが完璧で、小さなディテールで期待どおりに動作します。私はPOST要求を行うためにAdvanced Rest Clientを使用しています。なお、以下に見ることができます。

Request with Rest Client

そして、これは私が応答として得るものです: Response from Rest Client

だから、問題は、私がアドレスを入力しない場合は、私が見てみたい、ということですスキーマに表示されるデフォルト値 - "指定されていない"残念ながら、私はこれを達成できません。

私を助けてもらえますか?

+0

....コールバックで返されたオブジェクトはしかし完全ではない理由を見つけようとします。 –

+0

"default"ではなくdefaultにしておきます –

+0

これは試しても動作しません。とにかくありがとう –

答えて

0

解決済み!

実際には正しく動作したようです。私がIDで新しく作成したホテルを取得するGETリクエストをすると、実際には "address"を "Not specified"に設定して返します。

Model.create()関数でホテルを作成した後、返されたコールバックはホテルが含まれていますが、「アドレス」が「指定なし」されずにいるという事実。

私は郵便配達員と同様にリクエストを試みましたが、結果は同じです - アドレスは設定されていません。

しかし、とにかく、私はそれが実際に動作することがわかります。私は、キー「デフォルト」から二重引用符を削除して、もう一度確認してください

関連する問題