草庐IT

node-keyboard

全部标签

node.js - 获取mongodb集合中的最大元素抛出异常

我对下面的代码有疑问。我尝试在“链接”集合中获取max(seq)。运行下面的代码后,出现“fatalerror:JS分配失败-进程内存不足”错误。我怎样才能克服这个问题?感谢您的回复。db.collection('links',function(err,collection){varoptions={"limit":1,"sort":[['seq','desc']]};collection.find({},options,function(err,docs){console.log("Returned#"+docs.seq+"documents");});});注意:顺便说一句,nod

node.js - 无法使用 node.js 和 Mongodb 包查询 MongoDB 数据库

我无法使用node.js和Mongodb包查询我的MongoDB数据库。我已经像这样成功地插入了2个对象:varmongo=require("mongodb");varhost="127.0.0.1";varport=mongo.Connection.DEFAULT_PORT;vardb=newmongo.Db("nodejs-introduction",newmongo.Server(host,port,{}),{safe:true});console.log(host);db.open(function(error){console.log("Weareconnected",+ho

node.js - 彻底关闭 express.js + mongodb 服务器(使用 node.js)

我有一个使用express.js和mongodb作为数据存储的node.js网络服务器。此服务器由runit控制,我正在尝试实现一种正常关闭服务器的方法。我正在为SIGINT实现信号处理程序和SIGTERM,并且我知道您可以通过调用.close()来停止监听新连接。在createServer()返回的对象上.到目前为止一切顺利。但是,即使没有更多的请求即将到来,系统中可能已经有许多请求需要在我关闭数据库之前完成。我正在使用mongodbReplicaSet,我想如果我只调用db.close()马上,其中一些请求可能会以某种方式失败。有什么方法可以以允许挂起的数据库查询完成的方式关闭数据

node.js - Mongodb 找到最佳匹配

我想构建一个查询,返回数据库中最匹配的文档。即我想查找包含以下字段的文档-“动物”:“狗”“颜色”:“棕色”“图案”:“点”“尺寸”:“小”如果没有包含上述所有字段及其对应值的文档,我希望查询返回最佳匹配。f.e{"animal":"dog","color":"brown","size":"small"}我可以在mongodb中实现递归查询吗?如果是这样,如何?我应该使用mapReduce,如果是,如何使用?人们可以将这个问题更多地看作是一个推荐系统问题,就像我想推荐最适合给定值的项目(文档)一样,如果有人知道实现上述内容的好方法,我将不胜感激我正在使用mongodbmongoose和

node.js - 使用 Node.js 和 Express.js 检索 MongoDB 子文档

我使用node.js、express.js和mongodb创建了一个RESTfulAPI。我开始通过从运行良好的MongoDB集合中提取文档来创建我的路由。示例集合文档{"_id":ObjectId("51ace8c04cc8ea865df0923e"),"title":"SomeExampleTitle","producer":{"company":"YourCompanyName"}}有效-如果我执行.find({query})而不是通用的find(),它也有效app.get('/something',something.findAll);exports.findAll=funct

node.js - 蒙戈/ Mongoose : cleanup orphaned refs

假设我们使用引用作为模型的典型一对多关系为suggestedbyMongoDBofficialdocumentation:varUser=mongoose.Schema({});varGroup=mongoose.Schema({user:[{type:mongoose.Schema.Types.ObjectId,ref:'User'}]});我们还假设我关心用户出现在组中的顺序,因此数组是必需的。现在,让我们假设用户已被删除——并且出于某种原因,组没有使用$pull进行维护。如果您使用Mongoose的populate,一切看起来都很好,但是垃圾仍然存在于数组中。有没有办法识别孤立的

node.js - GridFS 中的自定义字段

它可以在GridFS中保存自定义字段,我使用的是NodeJS和gridfs-stream模块。该文件保存为下一个架构:{_id:"5208b9929e462bc24b000001",filename:"algo.txt",contentType:"binary/octet-stream",length:133074,chunkSize:262144,uploadDate:"2013-08-12T10:31:46.152Z",aliases:null,metadata:null,md5:"56cd6b2057623bfb70111b883678d436"}可以使用上传文件的用户ID添加自

Node.js/Socket.io 网络应用程序在本地完美且无限期地工作,但浏览器在 Heroku 上挂起

我有一个Node.js网络应用程序,它定期对MongoDB后端进行socket.io调用(每30分钟一次)。我可以让它在本地运行几天没问题。我最近刚刚部署到Heroku(免费,1个Dyno,使用MongoLabforDB)并且一切都启动并且工作正常。然而,当更新开始推出时,我在浏览器控制台中收到许多错误,表明更新并没有完全正确,最终(大约3或4个更新)并且总是,选项卡卡在30%CPU和800MBRAM(当它通常具有标称CPU和最多约300-400MBRAM时)。我使用一串promise来确保异步数据库更新步骤以完美的顺序发生,并且它们总是在本地发生。但是console.logs表明该应

node.js - 错误 : database names cannot contain the character '.'

我正在使用meteor.js,我只是去更改.html文件中的一些HTML输出,它开始给我错误:Error:databasenamescannotcontainthecharacter'.'我没有改变任何东西,我记得唯一做的事情就是开始一个我使用meteor.js创建的新项目,然后更新了meteor,现在我遇到了这个问题。其余错误详情:Error:databasenamescannotcontainthecharacter'.'W20130828-09:52:22.049(1)?(STDERR)atvalidateDatabaseName(/Users/jumpingcode/.mete

node.js - 使用 Mongoose 测试异步中间件功能

我在Mongoose中使用save中间件来在采取某些操作时在数据库中创建事件日志。有点像UserSchema.post("save",function(doc){mongoose.model("Activity").create({activity:"Usercreated:"+doc._id});});这似乎工作正常,但问题是我无法测试它,因为无法将回调传递给post(这可能不会说得通)。我使用mocha对此进行了测试:User.create({name:"foo"},function(err,user){Activity.find().exec(function(err,act){