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);
}