【发布时间】:2019-01-10 09:03:27
【问题描述】:
我正在使用护照和猫鼬进行 Node.js 和电子邮件验证。 现在我正在测试代码并得到一个错误,但我无法修复它。 这是我的问题和下面发布的代码:
我的 app.js 我有
var nev = require('email-verification')(mongoose);
require('./routes/db/email-verification')(nev);
require('./routes/db/passport')(passport,nev);
我的电子邮件-verificaiton.js
var User = require('./ModelUser');
module.exports = function(nev){
nev.configure({
...
...
},function(err,options){
if(err)
return err;
console.log('test');
});
nev.generateTempUserModel(User,function(err,tempUserModel){
if(err){
return err;
}
console.log('checked');
});
};
我的护照.js
module.exports = function (passport, nev) {
...
...
passport.use('local-signup', new LocalStrategy({
usernameField: 'email', //dummy string
passwordField: 'password', //dummy string
passReqToCallback: true
}, function (req, email, password, done) {
var newUser = new User();
newUser.email = email;
newUser.password = password;
nev.createTempUser(newUser, function( err, existingPersistentUser, newTempUser){
if(err) console.error(err);
if(existingPersistentUser){
console.log('E-mail already exists');
return done(null, false, req.flash('signupMessage', 'E-mail already exists'));
}
if(newTempUser){
var URL = newTempUser[nev.options.URLFieldName];
nev.sendVerificationEmail(email, URL, function(err, info){
if(err) console.error(err);
console.log('An email has been sent to you. Please check it to verify your account.');
return done(null);
})
} else{
console.log('You have already signed up. Please check your email to verify your account.');
return done(null);
}
})
我收到一个错误 TypeError: Cannot read property 'createTempUser' of undefined 我不知道为什么我的“nev”变量在我的 passport.js 中未定义。 请任何人都可以帮助我>?这很难。
【问题讨论】:
-
在你
app.js,直接在var nev = require('email-verification')(mongoose);之后的那一行,尝试添加console.log(nev),看看它是否在那里未定义,然后将其传递给passport.js中导出的函数跨度> -
@PatNeedham 你好,我在 var nev = require('email-verification')(mongoose); 之后添加了日志但它不是未定义的,所以我在 module.exports = function (passport, nev) { 它显示了 4 个日志,其中一个与 app.js 文件中的日志相同,然后它有 3 个未定义。
-
@PatNeedham 嗨,我解决了这个问题,谢谢!
-
你在函数内部做了什么改变?
标签: node.js npm mongoose email-verification