Javascript 通过mongoose模型发送报税表

Javascript 通过mongoose模型发送报税表,javascript,mongoose,Javascript,Mongoose,所以我有这个模型: "严格使用", var mongoose = require('mongoose'); var subscriberModel = function () { var subscriberSchema = mongoose.Schema({ email: String }); function validateEmail(email) { var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()

所以我有这个模型:

"严格使用",

var mongoose = require('mongoose');

var subscriberModel = function () {
  var subscriberSchema = mongoose.Schema({
    email: String
  });

function validateEmail(email) { 
  var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
  return re.test(email);
}

subscriberSchema.methods.validateSubscriber = function (subs, otherModel) {
  var code = 0;
  if (validateEmail(subs.email)) {
    mongoose.model('Subscriber').findOne({'email': subs.email},
    function(err, subscriber){
      if (err) {
        code = 2;
      } else if (subscriber) {
        code = 3;
      } else {
        subs.save(function(err){
          if (err) {
            code = 2;
          }
          code = 4;
          });
        }
      });
    } else {
      code = 1;
    }
  };

  return mongoose.model('Subscriber', subscriberSchema);
};

module.exports = new subscriberModel();
我猜这是一个范围问题或类似的问题(因为我不使用任何回调,或者我应该使用回调),但我找不到问题,也找不到解决方案。 那么,如何获取返回的代码值呢? 提前谢谢


[编辑]:我找到了问题所在并编辑了代码来解释它。显然,我的var是在mongoose的回调中设置的,所以现在我的问题是;当我需要结果在网页中向用户显示消息时,如何等待此回调结束?

好的,我找到了答案。 我编辑了我的函数
validateSubscriber
以发送回调:
subscriberSchema.methods.validateSubscriber=function(subs,callback)
。并删除了其中的otherModel事件

这样,当我在另一个文件中调用它时,我只需执行以下操作:

subscriber.validateSubscriber(subscriber, function(code){
    buyModel.code = code;
    console.log('code = %s', buyModel.code);
}
获取代码并等待答案

我希望它能帮助别人

subscriber.validateSubscriber(subscriber, function(code){
    buyModel.code = code;
    console.log('code = %s', buyModel.code);
}