Переглянути джерело

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({
     _id: String,
     sequence_value: Number
-});
+},{versionKey:false});
 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) {
         let result = await counterModel.findOneAndUpdate({_id: moduleName}, { $inc: { sequence_value: sc } }, {'new':true});
-        return result
+        return await checkIDResult(result,moduleName,null)
     } 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) {
     if (callback) {
         counterModel.findOne({_id: moduleName}).exec()