草庐IT

node-keyboard

全部标签

node.js - 聚合返回空数组

使用mongoose的Model.aggregate()返回一个空数组。我基本上复制了格式,如here所示.varmatch={};varproject={};project["_id"]=0;project["products.totalprice"]=1;project["line"]="$products.closedate";ThisCollection.aggregate([{$match:match},{$project:project},{$group:{_id:"$line"}}],function(err,docs){console.log(docs);//!!Ret

node.js - 是否需要在nodejs中关闭mongodb连接?

我是nodejs和mongodb的新手。在mongodbnative驱动程序网站中,他们在每次请求后关闭连接,但在高流量网站中似乎非常缓慢且存在问题。我只是想知道是否有必要这样做,或者我可以声明一个全局变量并将其引用到DB,如下所示:varmongodbClient=require('mongodb').MongoClient;vardb;functionconnect(){mongodbClient.connect('connectionstring',function(err,mdb){db=mdb;});}connect();functioninsert(query,collec

node.js - 使用 Express 设置 React Router

我有几个关于使用Express设置React的问题。首先,我对Express和React-Router使用了相同的路由路径。我认为这些应该匹配。但是当我导航到页面api/blogPosts时,它只显示我从MongoDB获取的数据的JSON格式。也就是说,Express路由覆盖了ReactView。我知道我可以只修改React-Router中的路由路径(例如,前面没有“api”)以便有不同的路由。然后它将按预期显示ReactView,同时仍然进行api调用。但同样,我认为路由路径应该匹配。我该如何正确处理?其次,我使用了express.Router(),但我不确定是否有必要这样做。什么时

node.js - 如果 800k 记录需要 50 秒,随着服务器变得理想,队列中的所有 http 待处理请求将阻塞 50 秒

如果800k记录需要50秒,则队列中的所有http待处理请求将阻塞50秒,因为服务器变得理想。varhttp=require("http");varurl=require("url");varMongoClient=require('mongodb').MongoClienthttp.createServer(function(request,response){if(url.parse(request.url).pathname=='/search'){varcollection=db.collection('documents');//supposeittakes800krecor

javascript - Node.js、Express 和 Mongoose 提供多个静态文件

使用Node.js、Express和Mongoose,我使用以下代码(工作正常)在多个子目录中同步提供多个静态文件:fs.readdirSync(__dirname+"/../../../np-site/themes/default/client/").forEach(function(dir){app.use(express.static(__dirname+"/../../../np-site/themes/default/client/"+dir));});但是,部分url必须是动态的,具体取决于数据库条目值:express.static(__dirname+"/../../..

node.js - mongoose 中的 populate 函数是做什么的?

当我阅读http://mongoosejs.com/docs/populate.html时,我不明白这个问题.我不完全理解populate函数的作用。我从meanjs示例源代码中获取它:Article.find().sort('-created').populate('user','displayName').exec(function(err,articles){if(err){returnres.status(400).send({message:errorHandler.getErrorMessage(err)});}else{res.json(articles);}});提前致

node.js - nodejs + mongodb错误异常: FieldPath 'progress' doesn't start with $

我正在尝试修改此查询中的第二个管道(我从此处获得nodejs+mongoose-queryaggregatedb.todos.aggregate([{"$group":{"_id":"$pic","open_count":{"$sum":{"$cond":[{"$eq":["$status","open"]},1,0]}},"progress_count":{"$sum":{"$cond":[{"$eq":["$status","progress"]},1,0]}},"done_count":{"$sum":{"$cond":[{"$eq":["$status","done"]},1,

node.js - 在 URL 中传递 Mongo ObjectId 并使用 Node/Express 查询该 ID

我在传递objectId作为我的URL参数时遇到了很多麻烦。我知道MongoDB中的ObjectId是一个十六进制值,我需要进行一些转换,但我在执行此操作时使用的每种方法都出现错误。目前,我得到的错误是“传入的参数必须是一个12字节的字符串或一个24个十六进制字符的字符串。”varmongo=require('mongodb').MongoClient;varObjectID=require('mongodb').ObjectID;app.get('/characters/:id',function(req,res){console.log(req.params.id);varcoll

node.js - 在 MongoDB 中定义 3 个具有不同关系的模式(多对多,一对多......)

我的应用程序中有3个不同的模式:userSchema,questionSchema,listingSchema三者的关系如下:每个列表都有许多与之相关的问题(每个列表都有相同的问题)。每个用户可以回答多个列表中的许多问题。许多列表中的许多用户回答了每个问题。我正试图全神贯注地定义这些模式之间的正确关系(主要是因为诸如“_id=100的用户回答了_id=5的问题之类的问题>在带有_id=3的列表中,我如何以最有效的方式更新所有这些?)。到目前为止我已经定义了:问题架构:varquestionSchema=newSchema({description:String});用户架构:varus

node.js - 将项目添加到混合模式数组时,mongoose.save 的结果不正确

以下是显示问题的函数:varmongoose=require('mongoose');varconnection=mongoose.createConnection('mongodb://localhost:27017');connection.once('open',function(){varschema=newmongoose.Schema({obj:[{}]//mongoose.Schema.Types.Mixed});varModel=connection.model('mtest',schema);varmodel=newModel({obj:[{name:'Origina