我正在使用Mongoose,Express和NodeJS實現審批系統。Mongoose save()在findOne()之前返回
每篇文章有2組認可。
我已經實現模型如下:
Post Schema:
var PostSchema = new Schema({
UserId: { type: ObjectId, unique: true, default: null },
/..
.. Object related fields
../
Approval1: Object, //chidschema objects of approver
Approval2: Object
});
Approval Mapping Schema:
var ApprovalMapSchema = new Schema({
UserId: { type: ObjectId, unique: true, default: null },
Approver1Id: { type: ObjectId, default: null },
Approver2Id: { type: ObjectId, default: null }
});
我想先找到映射在我的功能,然後更新保存在主哨對象。
我需要在保存新帖子之前檢索兩個審批者ID。
請提出一個好方法去解決它。我目前在做:
-
與
- 保存新的Post對象保存// 返回第2步之後,我KNW 保存在貓鼬在異步,但我不希望第2步中被稱爲 在此之前
- 獲取批准者標識符與批准者映射中的findOne
更新具有批准者條目的帖子對象。
post.save(函數(ERR,DOC){ 如果(ERR){} 其他 { 的console.log({成功:真味精: '成功創造了新的崗位',內容:文檔}) ; } });
/*var actId = activation._id, distributorId, ttlId; var approvalMap = ApprovalMap.findOne({ userId: myUserId }, function(err, appMap) { if (err) throw err; else{ Approver1Id = appMap.Approver1Id; Approver2Id = appMap.Approver2Id; } }); // Create child objects after this and update as subdocument
這不是爲我工作。請幫忙!
謝謝@ user2263572 .. ** asyc **做了詭計......這是一個救世主,一直在爲此奮鬥! – andoidbaby