草庐IT

node-keyboard

全部标签

javascript - 来自另一个模块所需的模块的node.js proxyquire stub 异步函数

被测模块:'usestrict';constconfig=require('config');constq=require('q');classRedisAccess{staticgetValue(key){letdeferred=q.defer();if(config.redis.disableInteraction){deferred.resolve();returndeferred.promise;}config.redisClient.get(key,functionhandleResults(err,result){...returndeferred.promise;}}ex

node.js - Node : How to connect to multiple redis?

如何用nodejs架设两台redis服务器(master/slave)?我用node_redis,已经尝试过redis://host:port,host2:port2?db=10&password=barvarconnectionString='redis://host:port,host2:port2?db=10&password=bar'varclient=redis.createClient(connectionString);client.set('key','value',function(err,reply){console.log(err);//thedboptionis

node.js - Redis 发布订阅 : Design pattern

我们正在使用socketi/o处理大量实时数据。用户使用套接字发送/接收数据。由于我们正在使用负载均衡器,因此我们不能使用套接字i/o的命名空间模型,而是在套接字中使用redis的pub/sub。到目前为止,我们为每个用户每个channel的订阅创建了一个单独的redis连接。但最近我们遇到了redis上达到最大连接数的问题(Error:Readycheckfailed:ERRmaxnumberofclientsreached),我们发现这是因为通过pub有太多的redis连接子。为了解决这个问题,我想到,与其为每个用户使用多个订阅Redis连接,不如有一个发布Redis连接和一个订阅

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 - 如何确定文档在 MongoDB 更新期间是否实际更改

我在NodeJS中使用Mongoose驱动程序。我有一个非常简单的更新调用,其目的是将外部session源同步到我的数据库:collection.update({meeting_id:doc.meeting_id},newDoc,{upsert:true})返回的对象确定是否发生了更新或插入。这非常有效。我的问题是我必须确定是否发生了实际更改。当您用自身更新文档时,MongoDB会以完全相同的方式处理它,就好像所有字段都已更改一样。所以我的问题是:有什么好方法可以判断是否真的发生了变化?我可以搜索每个文档然后手动比较每个字段,但这似乎是一个糟糕(且缓慢)的解决方案。

node.js - 如何使用 MongoDB Geospatial 选择查询中的字段?

我将MongoDBGeospatial与node.js和express结合使用,以查询特定点附近最近的街道。在我的结果中,我只想选择“名称”和“地址”字段。我已经尝试了下面的这段代码,但它不起作用,我收到了这个错误:“未处理的拒绝错误:无法将$select与数组一起使用。”谢谢。Street.find({'location':{$near:{$geometry:{type:'Point',coordinates:coords},$maxDistance:1000},$select:{_id:0,name:1,address:1}}}) 最佳答案

node.js - 使用 MongoDB 在 Node.js 中扩展,我应该什么时候一次查询所有 ID,还是并行查询每个 ID?

假设我有一个处理N个用户的脚本。该脚本可能看起来是两种方式之一,假设资源充足,哪种方式更快?我可以使用Promise.all或async.parallel。选项1functionprocessUsers(userIds){monog.find({_id:{$in:userIds},(userDocs)=>{consttasks=userDocs.map((userDoc)=>processUser(userDoc))async.parallel(tasks,(err,results)=>console.log('finished'))});}选项2functionprocessUser

javascript - 尝试使用带有 mongodb 的 node.js 实现 Multi-Tenancy 系统时出现问题

我们有不同的客户,我们的想法是在同一个应用程序中将他们的数据彼此分开。我们将node.js与mongodb一起使用,并使用mongoose进行查询。这是模型目录中的“index.js”文件varmongoose=require('mongoose');varfs=require('fs');varconnectionUrl='mongodbserverlink/';varcompanies=[{db:'comp1_db',comp_id:'com1'},{db:'com2_db',comp_id:'com2'},{db:'com3_db',compa_id:'com3'}];varco

node.js - 为集合中的每个博主选择最新帖子

那么,假设我有3个博主。他们每个人都有很多帖子。我想为他们每个人选择最新的帖子。目前我有这个伪代码:Bloggers.find({name:{$in:['John','Mike','Arny']}},(err,bloggers)=>{bloggers.forEach(blogger=>{blogger.latest_post=Posts.find({author:blogger.name}).sort({date:-1}).limit(1);})displayItSomehow(bloggers);})在这里,博主的名字就是一个群组的名字。每个组都有很多文档,但根据某些标准我只需要一个

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