草庐IT

Express-WS

全部标签

unit-testing - 如何执行涉及 redis、socket.io 和 nodejs/express 的单元测试?

我目前在尝试创建涉及socket.io、redis和express交互的单元测试时遇到问题。我正在寻找有关如何最好地模拟这些交互的策略。例如,我正在使用socket.io-client来模拟socket.io到我的快速服务器的连接/行为,但是当我添加一个测试来检查redis是否存储来自socket.io的正确信息时,我发现自己需要还在redis单元测试中模拟socket.io,这反过来意味着我需要模拟express服务器。这导致我似乎正在重写另一个服务器只是为了对我正在尝试测试的实际服务器进行单元测试。有没有人必须这样做?如果是的话,你能给我指点资源吗(google/stackover

node.js - 无法将 redis 服务器与 express node js 应用程序集成

我是Node.js的新手,我一直在尝试创建一个与KUE库集成的小型应用程序以进行任务排队。当我尝试运行应用程序时,即nodeapp.js我收到以下错误:{ReplyError:ERRwrongnumberofargumentsfor'set'commandatparseError(.......\node_modules\redis-parser\lib\parser.js:193:12)atparseType(........\node_modules\redis-parser\lib\parser.js:303:14)command:'SET',args:['promotion:l

express - 在 Express 中使用 supertest 时如何模拟 redis?

我正在Express中构建一个RESTAPI,我试图在我的Jasmine单元测试中模拟Redis(使用redis-mock)。如果supertest正在向API发出请求,我如何告诉我的应用程序使用模拟Redis而不是实际的Redis?.我知道我可能需要为我可以以某种方式换出的redis创建单独的模块,只是不确定如何将其换出以用于常规请求和super测试请求。单元测试:describe('InstanceAPIv1',()=>{it('returnsalistofinstances',(done)=>{request(app.default).get('/v1/instance').se

express - 跨多服务器集群跟踪 expressjs 中连接的客户端数量

我正在使用SSE并且需要跟踪集群中的事件连接数。在每个实例中我都可以做server.getConnections(function(err,count){if(err)throwerr;console.log(count);});使用此方法并使用Redis在集群中保持准确总数的最佳方法是什么? 最佳答案 不知道您设置的所有细节,我会按如下方式处理:假设您的所有集群实例都与同一个Redis实例通信,在Redis存储中设置一个名为connection_count的键:SETconnection_count0。在每个集群节点上处理serv

javascript - 如何在 express.js 中呈现 redis 记录?

我是node.js和express.js的新手。我知道这有点傻,但我真的不知道如何解决这个问题。希望有人能帮助我。我有一些信息存储在Redis中。redis127.0.0.1:6379>hgetall"store1"1)"apple"2)"10"3)"banana"4)"15"5)"pear"6)"20"7)"name"8)"AStreet"redis127.0.0.1:6379>hgetall"store2"1)"apple"2)"30"3)"banana"4)"40"5)"pear"6)"50"7)"name"8)"BStreet"我想在表格中显示这些信息。使用express.js

redis - Redis Store 5MB 限制是否适用于 Express 中的 session 支持?

session通常需要多少数据。如果我预计每天的点击量约为1000次,Redis主机免费计划的5MB限制是否适合我? 最佳答案 这取决于用于存储各个session的数据结构类型。看看thisarticle其中总结了redis提供的数据结构的内存使用情况。就memoryoptimisation而言,它可能有点过时了。但它仍然是获得粗略估计的好资源。 关于redis-RedisStore5MB限制是否适用于Express中的session支持?,我们在StackOverflow上找到一个类似

node.js - 为什么每个人都使用 MongoDB 与 Node.Js 和 Express 进行用户身份验证

我找到的几乎所有结合Node.Js/Express.Js和Passport(或其他流行模块)的本地身份验证策略示例都使用MongoDB。我想知道是否有人可以回答我这种组合的优点是什么,以及是否还有其他更轻便的数据库可供使用。例如,任何人使用Redis做这类事情的例子吗?或者为什么不直接使用MySQL进行用户管理? 最佳答案 虽然将Redis用作用户数据库本身没有任何问题(是的,它是一个生产数据库,而不是“只是一个缓存”),但这并不意味着它是一个好主意-至少不是没有额外的工作。您的应用用于与Redis服务器通信的协议(protocol

node.js - Express.js 中的 Redis SET 命令

可能是一个愚蠢的问题,但我可以从redis文档中看到,要设置一个键来保存我将使用的字符串值:SETmykey"Hello"但所有文档似乎都集中在命令行命令上。我正在使用Express.js(带有node.js)并且我希望能够从我的server.js文件运行命令。目前我有:#dbisaredis.createClientobjectsetearlierinmycodedb.set(mykey"Hello");但这不起作用-我收到语法错误警告。有什么建议吗? 最佳答案 您的函数调用中缺少逗号。Redis使用空格分隔参数,但node.js

node.js - 将 redis pubsub 消息转发到 express 中的特定 socket.io 客户端

在我的express服务器中,我使用的是socket.io和Redispubsub。服务端订阅一个Redis消息channel,当有人通过Redis发布新消息时,将Redis消息转发给特定的websocket客户端。根据我从socket.io和Redis文档中读到的内容,我可以使用变量socket向特定客户端发送消息并调用socket.broadcast.to(mySocketID).emit。但在下面的代码中,如果我想向redis订阅者内部的mySocketID发送消息,我该怎么办,这超出了io.on('connection')的范围?varredis=require('redis'

node.js - 如何使 express.js 应用程序在不使用全局的情况下启动时仅连接 redis 1 次?

我只想在我的express应用程序启动时连接到redis客户端1次,但我不想使用global。我该怎么做?谢谢 最佳答案 您可以使用Singleton类来初始化Redis并与Redis建立连接。例如:-varredis=require('redis');classRedis{constructor(){this.host=process.env.REDIS_HOST||'localhost'this.port=process.env.REDIS_PORT||'6379'this.connected=falsethis.client=