草庐IT

node.js - 使用 redis 作为数据库使用 nodeJS

我在我的应用程序中使用“redis”模块。但这是抛出错误。我的代码如下-//应用程序.jsvarexpress=require('express');varpath=require('path');varfavicon=require('serve-favicon');varlogger=require('morgan');varcookieParser=require('cookie-parser');varbodyParser=require('body-parser');varredis=require('redis');varclient=redis.createClient(

node.js - NodeJS - 安全连接到外部 redis 服务器

在我的主服务器上,我从外部/单独的redis服务器获取数据,该服务器通过apihttps://localhost:7000/api访问/?token=****有效。然而token和api并不安全。并且由于我希望将redis服务器分开,因此该技术不适合我的情况。在我的例子中,我想要2个独立的服务器A和B。A应该在不使用api或url调用的情况下从B加载数据...相反,它应该使用port(例如//server:123)。这样,服务器B只能从A访问。我希望这种方法适用于开发和生产。我相信AWS有“服务器组”,但这只是生产......那么有没有办法和nodejs建立这种联系呢?我还想知道这是否

javascript - Redis SCAN 没有给出 NodeJS 中的所有匹配项

我正在使用带有redisnpm包的Node.JS脚本来检索与模式animals:toFeed:*匹配的所有Redis键。匹配的一个示例是键animals:toFeed:17ed160f59c5b31caf7e741a4e62cb7785414cd。使用下面的代码,可以有10个匹配项,但代码只会返回2-3个这样的匹配项。可能是什么问题,我们该如何解决?使用Redis4.0.11、Node.js8.11.3、redis2.8.0npm包asyncfunctionscanAsync(cursor,pattern,results){returnredis.scanAsync(cursor,'M

node.js - 多 channel 取决于路径与nodejs和redis

我尝试根据同一端口中nodejs的路径创建多channel。例如(我的端口是8080):www.exemple.com:8080/channel/1www.exemple.com:8080/channel/2www.exemple.com:8080/channel/3www.exemple.com:8080/channel/4每个url路径channel对应一个channelredis例如(channel-X):varchannel='channel-X'getRedis.subscribe(channel);但我不知道如何链接channel并重复网址。这是我到当前时间的代码。sock

javascript - Redis MULTI 事务在 NodeJS 中的 EXEC 回调中随机返回 null

我遇到一个问题,EXEC的回调随机返回一些值作为null。大部分时间代码运行良好,但随机失败(或者如果我反复刷新浏览器)...这里是简化到失败点的代码:vartransaction=client.multi();reply.forEach(function(id){//replyalwaysequals['mykey1','mykey2']transaction.hgetall(namespace+":"+id);});transaction.exec(function(err,replies){//'replies'sometimesreturnsalltheresponsespro

node.js - ExpressJS、NodeJs 和 Redis 简单登录错误

我在检查Redis中的用户名和密码时遇到问题,它说用户名和密码未定义。我希望你们能帮助我解决NodeJs/ExpressJs中的这个问题。代码:app.jsvarexpress=require('express');varapp=express();varredis=require("redis"),client=redis.createClient();varuser,pass;app.use(express.bodyParser());client.on("error",function(err){console.log("errorevent-"+client.host+":"+

php - 如何使用带有 laravel 的 Redis 和 Nodejs 广播消息

我正在使用Redis+laravel+nodejs来广播消息。我的代码如下在Controller中functionpostReassignlead(Request$request){$data=Input::get();$leadId=$data['leadid'];$assignedtoid=$data['assignedtoid'];$assignedbyid=$data['assignedbyid'];$message="Alead:".$leadId,"hasbeenassignedtoYOUby".$assignedbyid."";$redis=LRedis::connect

node.js - PM2 NodeJs集群模式

我有4个在AWS上运行的ec2实例。PM2在所有实例上以集群模式运行。当我收到5K+并发请求时,应用程序的响应时间显着增加。所有请求都获取rediskey,正常获取最多需要10秒,没有这么多并发请求只需要50毫秒。这里有什么问题? 最佳答案 我们需要查明瓶颈。让我们做一些诊断:EC2实例是否为多核以利用PM2的集群优势?当您执行pm2startapp.js-iX时,您确定X=EC2实例的number_of_vCPUs吗?当您执行pm2monit时,您是否看到集群的所有实例共享相同的CPU和内存使用率?当您运行htop时,您的CPU和

node.js - NodeJS - .save() 不是函数。无法通过 Mongoose 创建集合

我也遇到了.save()isnotafunctionerror,但我已经完成了大部分类似的SO问题并尝试了它们各自的答案,但都是徒劳的。但是通过我的终端,我能够创建收藏并保存一个。.find()也在工作。下面是我的代码:模型->clientUser.jsvarmongoose=require('mongoose');varClientUser=newmongoose.Schema({firebaseUID:{type:String},userName:{type:String},displayName:{type:String}});ClientUser.index({firebase

arrays - NodeJS/MongoDB - 将数组中的值与登录用户的值进行匹配

我希望用户只能报告一次文件/视频。通过将用户ID推送到一个数组,然后检查用户是否已经报告了该文件。到目前为止,我能够找到当前用户,然后是VideoID,递增1,然后将其推送到reportedBy数组。但是在检查当前用户是否已经报告该文件时,我很迷茫。任何提示/帮助将不胜感激!:-)我的路线router.get('/report/:videoLink',function(req,res,next){async.waterfall([function(callback){User.findOne({_id:req.user._id},function(err,foundUser){if(e