0
saveTheUsr()
을 호출하면 usr is not defined
이라는 오류가 발생합니다. 나는 그것을 얻지 못하고 접근 할 수없는 이유는 무엇입니까? 나는 단순히 함수를 제외하고 콜백에서 함수 내용을 가질 수 있고 그것이 작동한다는 것을 안다. 필자는 usr 객체를 선언하고 콜백 함수를 통해 호출 할 수있는 방법을 알고 싶습니다. 정확히 콜백에서 시도한 방식. 그게 가능하니? 내 방법이 효과가없는 이유는 무엇입니까? 댓글에서 지적passport.js 로컬 전략 콜백에 함수를 만들고 실행할 수없는 이유는 무엇입니까?
var LocalStrategy = require('passport-local').Strategy;
var User = require('../app/models/user');
function saveTheUsr(){
var usr = new User();
usr.local.email = email;
usr.local.password = password;
usr.save(function(err) {
if (err)
throw err;
return done(null, usr);
});
}
passport.use('local-signup', new LocalStrategy({
usernameField : 'username',
passwordField : 'password',
passReqToCallback : true
},
function(req, email, password, done) {
User.findOne({ 'local.email' : email }, function(err, user) {
if (err)
return done(err);
if (user) {
return done(null, false);
} else {
saveTheUsr();
}
});
}));
'''saveTheUsr()'''메소드가 범위를 벗어나면'''saveTheUsr()와 같은 메소드에''email''와''password''를 매개 변수로 보내야합니다. email, password)''' –
'done'도 정의되지 않은 것처럼 보입니다. 스택 추적으로 질문을 업데이트 할 때주의해야합니까? saveTheUsr()에'done'을 건네주고'done'을 받아 들일 함수를 업데이트해야합니다. 먼저 시도해보고 그것이 효과가 있는지 여부를 알려주십시오. –
오, 여보! Thx 너무 많이! –