私はすでにこれを行う方法を研究しましたが、私はまだ理解できません。どこが間違っていますか? このタイプの関数を実行する方法を研究しましたが、私のコールバックで答えを得る方法を理解できず、常に他の関数の中に2つの関数があることになりました。Nodejs + Mongooseによるコールバック関数、検索値のみを返す方法は?
コントローラUserCtrl
// Models
var User = require('../models/user');
var isUserSearch = function(email,callback){
User.find({email:email},function(err,data){
if(err) throw err;
return callback(data);
});
}
var isUser = function(email){
var resp = isUserSearch(email,function(data){
return data;
console.log(data); // I get my data
});
console.log("Response : " + resp); // undefined
return resp;
}
var result = {
gerarToken : gerarToken,
isUser : isUser,
}
module.exports = result;
モデル
// Model
var mongoose = require('mongoose');
// Schema
var Schema = mongoose.Schema({
name : {
type : String,
require : true
},
email : {
type : String,
require : true,
unique : true
},
password : {
type : String,
required : true
},
type : {
type : Number,
required : true,
default : 1
},
created : {
type : Date,
default : Date.now
}
});
var Data = mongoose.model('User', Schema);
module.exports = Data;
コンテキストAuthCtrl
// Controllers
var Crypto = require('./cryptoCtrl');
var User = require('./UserCtrl');
// ----------- Login
var login = function(req,res){
var data = req.body;
var email = data.email;
var password = Crypto.cryptoString(data.password);
var existUser = User.isUser(email);
if(existUser){
// IsUser is a function to return the user array
// if it exists, otherwise it returns only a false
// boolean value. In the example I'm going to use this function
}
}
、あなたは私がこれを行う正しい方法を知っています。このために特別に勉強する必要があるものは、私に例を挙げてください。ありがとうございました –
例を使って自分の答えを更新しました –