sails.js - 在一个模型中使用两个不同的适配器

标签 sails.js waterline

我想使用 mongo 来存储全局提要的数据,但我想使用 redis 在内存中缓存最新的帖子。有没有办法设置一个模型来使用两个适配器?如果没有,我想我会尝试让一个 Controller 使用两种模型。

最佳答案

这是一项实验性功能,但您可以让单个模型使用多个连接,并且这些连接可以使用不同的适配器:

在 Sails v0.9.x 模型中,使用 mongoredis定义于 /config/adapters.js :

module.exports = {

    adapter: ['mongo', 'redis']
    attributes: {...}

}

在 Sails v0.10.x 模型中,使用 mongoredis定义于 /config/connections.js :
module.exports = {

    connections: ['mongo', 'redis']
    attributes: {...}

}

但是,您不能指定某些属性使用一个连接,而其他属性使用另一个。如果涉及多个适配器,并且适配器具有相同的方法,则将它们合并在一起。使用 sails-mongo 就是这种情况。和 sails-redis同型号;两个适配器都有 find , create , updatedestroy ,因此您的模型最终将仅使用一种适配器方法( sails-redis ,在上面的示例中)。

那么多个适配器有什么用呢?这是一种向模型添加外部 API 方法的方法。例如,如果您有一个 File代表 Amazon S3 上的文件的模型,您可以使用 sails-s3upload 的适配器和 download方法,旁边 sails-mongo存储有关文件的元数据。

缓存也是 active development 中的一个功能,但与此同时,您最好的选择是按照您的建议为缓存使用单独的模型。

关于sails.js - 在一个模型中使用两个不同的适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22385823/

相关文章:

javascript - 如何在 sails.js 中为 WebSocket 定义自定义房间?

node.js - 通过 Express 持续更新 Backbone 模型

javascript - 如何在 Sails/Waterline 的生命周期回调中调用模型实例方法?

node.js - 在 postgresql 函数中使用 libphonenumber 库

node.js - 如何将二进制数据从 post 存储到 MongoDB

node.js - Sails 发生错误请求/400 错误时如何重定向页面?

javascript - 如何路由到 sails.js 中的函数

javascript - 等待回调在 Controller 中返回

mongodb - 水线如何制作反向索引

node.js - 如何使用 Waterline Adapter for Mongo 在 Sails.js 中使用搜索修饰符 "OR"