如何在 node.js 中设计持久化服务
Posted
技术标签:
【中文标题】如何在 node.js 中设计持久化服务【英文标题】:How to design persistence service in node.js 【发布时间】:2013-07-20 15:52:18 【问题描述】:我正在用 express 和 mongo 制作一个 rest api。我没有为每个模型写出 crud 操作,而是考虑编写一个通用的数据库服务,例如(在 db.coffee 中):
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)
你觉得这个设计怎么样?这有标准设计吗?
【问题讨论】:
【参考方案1】:是的,有。
看看 mongoDb 的其余接口。 http://docs.mongodb.org/ecosystem/tools/http-interfaces/
另外,如果你从头开始做,你会很快意识到有很多边缘情况是你不想处理的。
以这种方式使用 mongoDB 的主要问题是,您的大量数据库数据将通过 Internet 以小部分形式传输到客户端中以进行大量简单请求。如果您在服务器端执行大部分逻辑,您将不会遇到相同的网络延迟,并且您的应用可能会响应更快。
【讨论】:
以上是关于如何在 node.js 中设计持久化服务的主要内容,如果未能解决你的问题,请参考以下文章
nodejs - 为啥 Node.js 可以处理大量的同时持久连接?