我正在使用NodeJS和Mongoose来获得有用户的应用程序。 而且,根据请求,服务器对特定用户执行大量操作。 这意味着,我有这个特殊的代码片段出现在很多function: User.findOne({'email':req.user.email}, function (err, user) { if (err) { console.log('err'); res.send('Error'); } if(!user){ console.log('err'); res.send('Error'); } // do something with returned user user.data = …. … user.save(function(err) { if(err) { console.log('err'); res.send('Error'); } else { console.log('success'); res.send('Success'); } } 正如你所看到的,有很多复制的代码。 改变的代码是“用返回的用户做某事”的部分。 几乎所有其他(错误消息等)保持不变。 那么,我怎样才能把这部分提取出来呢? 既然这是在callback机制上工作,是否有一定的方法来实现呢?
我的主server.js代码,我开始我的服务器,并连接到mongoDb服务器 if(process.env.MONGOLAB_URI) { mongoose.connect(process.env.MONGOLAB_URI); } else { mongoose.connect("mongodb://localhost/itrack"); } global.db = mongoose; mongoose.connection.on('open', function() { // This line is getting printed here console.log('Mongoose opened.'); }); // When successfully connected mongoose.connection.on('connected', function () { console.log('Worker ' + process.pid + ' is alive!'); http.createServer(app).listen(app.get('port'), function(){ console.log('Express server listening on port:', app.get('port')); }); }); // If the connection […]
请find我collections的文件结构: { "_id": "9759572745-Sing", "details": { "Gender": "M", "PreTrainingStatus": "Fresher", "Religion": "Hindu", "attendanceInPercentage": "", "batchHolders": { "AssessmentDate": "Thu Jul 16 2015", "CourseFee": "7500", "isEditable": false }, "batchID": "282726", "eid": "", "whereDidYouHearAboutStar": "—Select—", "skillInstructorOrTrainerName": "282726", "specificGovtInstitutetieups": "—Select—", "isSelected": false, "isEditable": false }, "addedOnMs": 1439455766000, "submittedOnMs": 1439454813000, "latitude": "27.409566879272", "longitude": "77.69295501709", "locationName": "Uttar Pradesh 281006,null" } 我想打印所有嵌套的属性显示在列中。 […]
使用Mongoose@4.2.6,我想连接到分片的MongoDB实例。 const url = "mongodb://user:pass@localhost:27022,localhost:27023/db"; // This never resolves Mongoose.connect(url, (err, db) => { … }); 当我使用本地MongoDB@2.0.48库(Mongoose使用的相同版本)进行连接时,它可以工作。 const url = "mongodb://user:pass@localhost:27022,localhost:27023/db"; // This resolves a connection MongoClient.connect(url, (err, db) => { … }); 当我在Mongoose中build立连接时,连接callback将永远不会被parsing。 Mongoose中有什么我必须configuration来允许我连接到分片的Mongo实例吗? 谢谢
我有一个像这样的ID数组: [5, 7, 9, 4, 18] 我有一个与以下格式插入文档的集合: db.collection('groups').insert( [ { members: [ {member: 5, hasSeen: false, requiresAction: true}, {member: 7, hasSeen: true, requiresAction: true}, {member: 4, hasSeen: false, requiresAction: false} ] }, { members: [ {member: 5, hasSeen: false, requiresAction: true}, {member: 4, hasSeen: false, requiresAction: false}, {member: 7, hasSeen: true, requiresAction: true}, {member: 9, […]
我有一个活动和MongoDB的集合。 活动也有一个date。 我正在尝试dynamic构build一个表,其中包含保存在我的集合中的所有活动。 因此,我想在将JSON对象数组发送到我的玉文件之前,使用moment.js更改date的格式。 我试图做一个新的结果数组,并将其发送到我的玉文件。 router.get('/', function(req, res, next) { activitiesController.getActivities(function(results) { if(!results) { results = []; } for(var key in results) { results[key].date = moment(results[key].date).format('ddd, hA'); } res.render('index', { activities: results }) }); }); 这是结果数组的外观: [{ "_id" : ObjectId("56fe2c0d7afcafa412ae19c2"), "title" : "Fitnessstudios", "category" : "Sport", "time" : 2, "date" : ISODate("2016-03-30T00:00:00.000Z"), "__v" : 0 […]
我有一个叫做csgoItems的mongoose文档和模式,像这样: { "_id": { "$oid": "56ff8fb815ad7ecdede3bc3c" }, "csgo_number": 1, "last_updated": 1459589048324, "items": { "Shadow Daggers | Urban Masked (Well-Worn)": { "market_hash_name": "Shadow Daggers | Urban Masked (Well-Worn)", "sale_price": 134.29 }, "Shadow Daggers | Urban Masked (Minimal Wear)": { "market_hash_name": "Shadow Daggers | Urban Masked (Minimal Wear)", "sale_price": 108.3 }, "Shadow Daggers | Urban Masked (Field-Tested)": […]
我有一个UserModel,用于生产。 我想添加一个布尔属性(isRegistered)。 对于已经在我的平台上的用户,我希望这个新属性是真实的。 对于新用户,我希望它默认为false。 我怎么能把default: false的我的mongoose模型,但对这里已经有人呢? 谢谢 !
modelThreader.find({ $and: [ {"date_entered": { $lt: fromTime }}, {"cancelled": { $ne: true }}, {"hideFromUserIds.id": { $ne: current_user_id }}, {"banned": false}, {$and: [ {"user_id": { $ne: current_user_id }}, {"privacy": { $ne: 1 }} ]} ] }).exec(function( err, docs ){ // handle response. }); 我在mongo中遇到了一个看似简单的查询的麻烦。 上面的查询我需要在查询中设置所有的第一批,即: {"date_entered": { $lt: fromTime }}, {"cancelled": { $ne: true }}, {"hideFromUserIds.id": […]
目前,我正在为一个移动应用程序开发一个带有js + mongoDB的sails API。 我想保存从移动应用程序发送的多个数据,我通过控制器函数中的req参数(作为对象)捕获它。 我的控制器代码的一些部分如下所示: var contactData = req.allParams().Contact; looping.. { Contact.create(contactData[index]).exec(function addContact(err,createdContact){ }); } 你能告诉我如何实现循环以保存多个联系人数据到数据库? 问候,argi danu。