2013-07-22 28 views
3

我正在用express和mongo做休息api。相反,对于每一个模型写出CRUD操作,我想编写一个通用数据库服务的,因此(在db.coffee):如何在node.js中设计持久性服务

exports.findById = (model, req, res) -> 
    model.findById req.params.id, (err, document)-> 
    if err 
     throw err 
    return document 

所以,如果我想从一个用户ID获取用户,我会打电话(在user.coffee):

exports.findById = res.send db.findById(model, req, res) 

这是从app.coffee称为:

app.get '/user/:id', user.findById(req, res) 

你认为这个设计怎么样?这是否有标准设计?

回答

0

是的,有。

看看mongoDb的其他接口。另外,如果你要从头开始做,你很快就会意识到有很多你不愿意处理的边界情况。

以这种方式使用mongoDB的主要问题是,很多数据库数据将通过互联网以小部分的形式传输到客户端以进行大量简单的请求。如果您要在服务器端执行大部分逻辑,您将不会遇到相同的网络延迟,并且您的应用程序可能会更具响应能力。