gpt4 book ai didi

node.js - sails JS 服务(在 api/services 目录中)可以用于跨请求保存对象吗

转载 作者:太空宇宙 更新时间:2023-11-03 23:23:32 25 4
gpt4 key购买 nike

Controller 在请求过程中会丢失其状态。但是我们可以使用服务来跨请求保存对象吗?

我的用例是这样的:我必须维护一个 Twitter 流池(通过像 npm twitter 这样的库)当用户点击 Controller 时,就会启动一个流。我想在某个地方维护一个所有流的池。服务目录看起来像是放置这些流(在数组中)的正确位置。

然后在点击另一个 Controller 时,我想从该数组中获取适当的流并销毁它,以便它停止流 API。

那么服务文件夹有用吗?或者我是否需要使用一些缓存库作为 here

编辑:

twitter 流代表与 twitter api 的事件且持久的连接。所以我不认为它们可以存储在数据库中(或缓存到辅助内存中)。

最佳答案

我认为您可以通过这种方式使用任何 require 模块,将其视为 OOP 类的实例,在 module.exports 中具有公共(public) getter 和 setter。

假设您有一个名为 myService.js 的服务:

var pool = []; // this will be initialized when the app starts

module.exports = {
addToPool: function(obj) {
pool.push(obj);
},

getPool: function() {
return pool;
}
};

然后任何 Controller (等)都可以访问该池:

var myserv = require('myService');
myserv.addToPool({'one': 'two'});
var pool = myserv.getPool();

但是,

我从未使用事件内存以这种方式存储内容。你的泳池要多大?您确定不想通过数据库来执行此操作吗?

另一个警告,我不确定不会有一些干扰,例如 pool 被一个用户发起的一种方法迭代,并被另一个用户发起的另一种方法更改等

关于node.js - sails JS 服务(在 api/services 目录中)可以用于跨请求保存对象吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47088391/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com