浏览代码

counter为空时报错问题

zhangweicheng 7 年之前
父节点
当前提交
b4f1838c65
共有 2 个文件被更改,包括 14 次插入3 次删除
  1. 1 1
      modules/all_models/counter.js
  2. 13 2
      public/counter/counter.js

+ 1 - 1
modules/all_models/counter.js

@@ -6,5 +6,5 @@ var Schema = mongoose.Schema;
 var counterSchema = new Schema({
 var counterSchema = new Schema({
     _id: String,
     _id: String,
     sequence_value: Number
     sequence_value: Number
-});
+},{versionKey:false});
 mongoose.model("counters_operation", counterSchema,"counters_operation");
 mongoose.model("counters_operation", counterSchema,"counters_operation");

+ 13 - 2
public/counter/counter.js

@@ -45,12 +45,23 @@ counterDAO.prototype.getIDAfterCount = async function(moduleName, stepCount, cal
     }
     }
     if (callback === null) {
     if (callback === null) {
         let result = await counterModel.findOneAndUpdate({_id: moduleName}, { $inc: { sequence_value: sc } }, {'new':true});
         let result = await counterModel.findOneAndUpdate({_id: moduleName}, { $inc: { sequence_value: sc } }, {'new':true});
-        return result
+        return await checkIDResult(result,moduleName,null)
     } else {
     } else {
-        counterModel.findOneAndUpdate({_id: moduleName}, { $inc: { sequence_value: sc } }, {'new':true}, callback);
+        counterModel.findOneAndUpdate({_id: moduleName}, { $inc: { sequence_value: sc } }, {'new':true}, function (result) {
+            checkIDResult(result,moduleName,callback)
+        });
     }
     }
 }
 }
 
 
+async function checkIDResult(result,moduleName,callback){
+    if(result){
+        return callback?callback(result):result;
+    }else {
+        return callback?counterModel.create({_id: moduleName,sequence_value:1},callback): await counterModel.create({_id: moduleName,sequence_value:1});
+    }
+
+}
+
 counterDAO.prototype.getCurrentID = function(moduleName, callback) {
 counterDAO.prototype.getCurrentID = function(moduleName, callback) {
     if (callback) {
     if (callback) {
         counterModel.findOne({_id: moduleName}).exec()
         counterModel.findOne({_id: moduleName}).exec()