アプリはエクスプレス 3 を使用しています。データベースからデータを取得するルートのベアボーンの例を次に示します。
var Post = mongoose.model('Post')
app.get('post/:id/loompas', function(req, res) {
Post.getLoompas(function(err, data){
res.render('x', data)
})
})
Whereは でインスタンス メソッドとしてPosts.getSomeData
定義されており、場合によっては外部 API にアクセスします。/models/post.js
PostSchema.method('getLoompas', function(callback){
var post = this
API.get('y', function(x){
this.save(x)
callback(x)
})
})
これはにおいがし始めており、スキーマ定義に沿っているようには見えません。メソッドのコレクションは非常に大きくなる可能性があります。
これらの問題を分離し、過度に太ったモデルを回避するために推奨される設計パターンは何ですか? 外部 API 呼び出し用のサービス層? 興味深いソリューションはありますか?