草庐IT

nodeJS-Express

全部标签

javascript - 在 Express 路由中使用 redis

我只想能够在一个路由中的键中存储一个值/api/foo?redisKey="1"(setvalueforid=1)然后我想在另一个路由中获取值。/api/bar?redisKey="1"(getvalueforid=1)但是,redis是异步的,所以你必须等待它连接client.on('connect',function(){//performredisoperations});我不确定如何在我的路由器中同步它。 最佳答案 我假设您使用的是redis为您的客户端库。在您的快速路由文件中,您不希望在每个请求期间都创建连接。相反,您将在

node.js - 执行 redis eval 命令以在 nodeJS 中运行 Lua 脚本

在Redis中,我通过CLI运行Lua脚本,如下所示:-$redis-cli--evaldebug_script.luakey1key2key3key4,arg1arg2因此,我的Lua脚本接受4个键和2个参数。现在我想在Node.js中运行相同的脚本。我正在使用this用于在我的应用中导入Redis的库。我没有找到任何示例来说明用于执行Lua脚本的redisClient.eval(...)函数的参数。因此,我只是随便打一些可能有用的东西。但似乎没有任何效果。我的app.js是这样的:varredis=require("redis")varclient=redis.createClie

express - 使用 Redis 和 JWT 的 Socket.io 用户 session

谁能帮我理解这部分代码:varauth=function(cb){return_.wrap(cb,function(fn,data){redis.get(email,function(err,id){if(!err)throwerr;if(!id)returnsocket.disconnect('unauthorized');fn(data);});});};我从这个article得到的.我不明白那里发生了什么,尽管我导航到lodash文档并阅读了“wrap”方法。我很困惑,尤其是因为我看不到文章中的什么地方进一步使用了这个“auth”!(我认为这毕竟被定义为在某处使用)。提前谢谢你。

node.js - 将 NodeJS 连接对象保存在共享数据库/内存中

我正在运行带有NodeJS6的Debian8,并且正在使用IBMWatsonIoT平台:https://github.com/ibm-watson-iot/iot-nodejs我在IBM中创建了一个网关,并且能够使用以下代码连接并向其发布数据:vargatewayClient=newiotf.IotfGateway(config);gatewayClient.connect();gatewayClient.on('connect',function(){gatewayClient.publishGatewayEvent("status","json",'{"d":{"cpu":60,"

nodejs升级引起的构建错误:0308010C:digital envelope routines::unsupported

文章目录查找原因webpack源码与配置查看nodejs的crypto模块查看openssl问题解决方法升级webpack提供legacy容器环境增加系统环境变量在package.json中添加设置nodejs版本降级或多版本管理最后最近,发现自己电脑上的nodejs版本居然还是14+,而最新的已经到了18+,由于并没有使用任何版本管理工具,于是直接升级到了最新的版本(v18.14.1),然后悲剧就发生了。电脑里以往的绝大部分的Vue和React项目,在执行脚本构建命令如npmrundev或npmrunbuild时,都出现同样的错误,导致构建失败,并且报类似下面的错误:查找原因出现了问题,自然

node.js - 连接到集群时如何关闭ioredis(nodejs模块)?

我已经编写了一个使用ioredis的模块和一些测试。问题是,当我在集群模式下连接ioredis时,mocha在完成后挂起,即使我调用了redis.disconnect()。似乎有些东西仍然绑定(bind)在事件循环上。这是我的测试:it('connectstoredisclustermode',async()=>{//redisClientFactroyismymoduleletredisClientFactory=redisClientFactoryInit({host:'localhost',port:7000})//itreturnsaredis.clusterinstancei

redis - 有适用于 v8 的 Redis 客户端吗? (不是 NodeJs)

我有一个连接到redis的NodeJs服务器。我还有一个使用v8引擎的程序。我想知道是否也有适用于v8的任何redis客户端库。如果有的话就好了。我们也可以不做任何修改地使用现有的C客户端hiredis吗? 最佳答案 Redis-node-client看起来它支持GoogleV8以及node.js 关于redis-有适用于v8的Redis客户端吗?(不是NodeJs),我们在StackOverflow上找到一个类似的问题: https://stackoverf

node.js - Express redis session 存储停止在新机器上工作

我安装了redis,并且可以连接到它,但是session没有持续存在,也没有任何显示。我没有更改任何代码,除了升级到Node0.8.15而不是0.8.6varRedisStore=require('connect-redis')(express);app.use(express.session({store:newRedisStore({host:cfg.redis.host,db:cfg.redis.db}),secret:'meow'}));//afterlogin:req.session.userid=user._id;我不得不重新安装redis,而且我很确定我没有在debian

node.js - req.session undefined with Redis/Express

我从memorystore切换到使用Redis,我也在本地使用MongoDB。我读过的类似帖子不相关或没有帮助。基本上,如果路由器函数尝试为req.session设置一个值,Node应用程序将关闭。我是Redis的新手,所以我可能没有看到明显的东西?//inappvarapp=express();varcookieParser=express.cookieParser('secret');app.configure(function(){app.use(express.bodyParser());app.use(cookieParser);app.use(express.session

session - express:session store,查询session key redis

app.use(express.session({store:newRedisStore({host:'localhost',port:6379,db:0,pass:'RedisPASS'}),secret:'1234567890QWERTY'}));上面在redis中创建了一个sessionstore。但是session数据的条目是在一些随secret钥中,例如:sess:0t-8-qJG5s0e3w4oGhBjxgAH。获取sessionkey的最佳方法是什么? 最佳答案 这应该可以解决问题:varkey=req.session