草庐IT

nodejs-demo

全部标签

node.js - Redis 的 NodeJS 和 Redis 超时触发器

我想制作一个基于集群的NodeJS脚本,它有8个或更多的worker。该脚本在独立时使用SetTimeout并且计时器存储在NodeJS脚本内部。现在我必须对此做些什么,我想也许我可以使用redis过期并以某种方式在key过期时从redis调用一个函数?任何人都可以给我看一个小例子吗?还有一个问题:这有多可靠? 最佳答案 如果你使用的是Redis2.8.0+,那么有keyspacenotifications.它们使用Redis中现有的pubsub机制,因此您可以简单地订阅这些各种通知。您确实需要确保启用这些通知,因为它们在默认情况下

node.js - NodeJS Expres + RedisStore ,请求 session 始终未定义

我确实看到了一些类似的问题,但是九个可以解决我的问题!req.session在nodeJSExpress应用中总是未定义的。在express/connect-redis/和express-session包上使用最新版本。varexpress=require('express');varapp=express();varport=process.env.PORT||8008;varmongoose=require('mongoose');varcookieParser=require('cookie-parser');varbodyParser=require('body-parser'

javascript - NodeJS Redis session 不会通过浏览器重定向持续存在

我对node还是很陌生,正在尝试使用express+redis进行session管理。我当前的项目要求将用户重定向到外部站点以进行身份​​验证。身份验证后,浏览器将重定向到我指定的回调url。我需要session数据在重定向中保持不变。我的实现如下:用户触发对nodeJS服务器的POST调用,我通过req.session.foo='bar'将数据保存到session,然后将auth_url返回给浏览器。浏览器使用window.location.replace(auth_url);重定向到外部站点进行身份验证身份验证后,浏览器被重定向到localhost:3000/mycallbacku

node.js - Nodejs 中的 connect-redis

我在我的nodejs应用程序(express4.x)中使用了nodejs/express/redis/express-sessionredis初始化由connect-redis/session框架在后台完成。到目前为止它有效。现在我需要用redis来存储session之外的其他数据,world希望有sessionstore以外的新store。只能开一家店吗?如果只有一个存储,是否可以使用由connect-redis/session初始化的redis客户端?如何获取?感谢您的帮助!现在的代码是:varexpress=require('express');varsession=requir

node.js - nodejs 对象 #<Server> 没有方法 'configure'

我有一个Node服务器:varhttp=require('http');varserver=http.createServer().listen(4000);vario=require('socket.io').listen(server);varcookie_reader=require('cookie');varquerystring=require('querystring');varredis=require('redis');varsub=redis.createClient();//SubscribetotheRedischatchannelsub.subscribe('c

javascript - 允许 nodejs session 转移到子域

我很难理解nodejs中的session,我在同一端口上有一个子域,但我必须重新登录。我想知道如何配置nodejs以共享同一个session,我正在使用passportjs来登录用户。我试过使用redis,但是不行,我不明白。app.use(session({secret:"something",domain:'.app.localhost',store:newRedisStore({host:'.app.localhost',port:9200,client:redisClient}),cookie:{maxAge:604800//oneweek}}));到底如何让我的子域app.l

node.js - 在 EC2/Nodejs 后端 Redis/Varnish 中存储元数据和缓存 api 响应数据?

我正在编写一个nodejs后端,它将根据类别发出一系列http请求,汇总结果,并将结果返回给移动客户端。例如,需要将以下元数据保存在数据存储中key:category1value:{name:'Cat1Name',requestUrls:[{name:'Requesturl1',url:'http://reqfoo1/'},{name:'Requesturl2',url:'http://reqfoo2/'},{name:'Requesturl3',url:'http://reqfoo3/'},{name:'Requesturl4',url:'http://reqfoo4/'},....

javascript - 尝试通过 Redis 更好地理解 NodeJS 并使用后台任务

我正在尝试在本地测试一个Node服务器,以寻找我最终想在DigitalOcean上部署的东西(这完全是另一回事)。我暂时成功地设置了一个带有休息端点和自签名证书的本地Node服务器。我的问题是我想存储我的用户可以通过点击休息端点来检索的数据。我目前的想法是,我会在服务器上运行某种后台任务,不断获取新数据,这样当一些更受欢迎的查询出现时,我就会为它们准备好最新的数据,经过清理并准备好使用。我的问题是我不明白我应该如何运行一个后台函数,它会一遍又一遍地调用自己而最终不会导致内存问题。我在看Bull或Kue,但我不确定它们是否适合我的特定需求。我之前也从未处理过NoSQL数据库,因此Redi

javascript - nodejs 中的 for 循环不适用于 redis hexists

在redis中使用hexists检查执行for循环,但我只收到数组中最后一项的响应。我尝试了所有方法,包括异步和堆栈溢出中建议的一些方法,但无法获得解决方案,不确定我缺少什么。代码如下reply.forEach(function(replyitem,index){parsedReply=JSON.parse(replyitem);if(checkMsg(parsedReply.msguuid,index)==null){result.push(parsedReply);}count++;if((count+1)==reply.length){//Passtheinfolisttothe

node.js - 在 NodeJS 中重置变量和异步编程

我在nodeJS中玩异步编程,遇到了一个有趣的问题。我的代码中有这样的东西://requiremodulesvarclientDetails={};//Initializetheobjectatthetopofthefile.io.use(authenticate)//amethodwhichgetssomeuserinformationfromthedatabaseandassignsthesocketIDtotheuser.clientDetailsobjectgetsthedatahere.io.on('connection',socketIOConnection);//Amet