该应用程序正在使用 express 3。这是从数据库获取数据的路由的准系统示例:
var Post = mongoose.model('Post')
app.get('post/:id/loompas', function(req, res) {
Post.getLoompas(function(err, data){
res.render('x', data)
})
})
其中在Posts.getSomeData
中定义为实例方法,/models/post.js
有时会访问外部 API:
PostSchema.method('getLoompas', function(callback){
var post = this
API.get('y', function(x){
this.save(x)
callback(x)
})
})
这开始有味道了,看起来它不属于 Schema 定义。方法的集合可能会变得非常大。
建议使用哪些设计模式来分离这些问题并避免过于肥胖的模型?用于外部 API 调用的服务层?有什么有趣的解决方案吗?