Node.js结合mongoose和Sails水线
我在Node.js上开发基于开源微软服务的项目。
问题描述
一些微服务是如此薄,只与MongoDB交互,所以我没有在那里使用Sails,并且首选直接使用Mongoose。 因此,我已经为我需要在mongo中坚持的每个对象实现了mongoose模式。
我还将在其他一些微服务中使用Sails.js,因此我将不得不实施Waterlinetypes的模式来保存和查询对象。
问题是模式的重复,我发现它是无用的。
我想到的解决scheme
我希望在所有的服务中使用一种types的模式。
现在有3个选项:
-
一个神奇的方法来连接模式(我不知道),并有两个世界同时工作(最不可能的select)。
-
为了在所有的微服务中使用Waterline,无论是否使用Sails.js,因此在系统中有1个模式types。
-
为了强制Sails.js使用mongoose适配器而不是Waterline,然后实现一些内部使用Mongoose的CRUD数据访问层(DAL),并在任何地方使用它来访问数据库。 因此,mongoose模式将贯穿整个系统。 但是后来我放弃了Waterline的封装function,如果将来我想改变DB,我会遇到麻烦。
我也可以在我的应用程序中妥协和重复模式,但这是最后的手段,因为我相信这个问题必须有一些解决scheme。
我可以想到以下几点:
- 将通用部件(如Sails模型)放在Sails项目中,并将其推送到(私有)npm软件包
- 使用https://github.com/tjwebb/marlinspike或者其他的sails钩子在你需要的每个实例中导入它们。
我没有尝试过这个,但是准备在将来采取类似的步骤。
另外,我看到这个问题: https : //github.com/tjwebb/marlinspike/issues/4
谁认为水线对mongoose…对这个date,selectmongoose。
水线让我们感到非常头痛,而mongoose是如此顺利和直接。
- 刷新浏览器后,包含“hypen”的URL不会经过angular度$ routeProvider.when(),而直接请求服务器
- 带有Passport.js和Express.js的HTTP GET请求
- 如何在node.js上进行一些authentication后避免请求stream丢失的数据?
- 使用nodejs和Express进行videostream
- 在Jade视图中使用JavaScript代码 – 如果(variables)显示未定义,而不是传递
- Node.js Body-Parser无法检索表单input
- 为什么不res.redirect实际上redirect我?
- 带有可能的空参数的find()语句
- websocket与http模块一起工作,但不能与express(node.js)