首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Node.js电子邮件-使用mongoose验证

Node.js电子邮件-使用mongoose验证
EN

Stack Overflow用户
提问于 2018-08-02 22:32:51
回答 1查看 740关注 0票数 0

我正在使用护照和mongoose进行Node.js和电子邮件验证。现在我正在测试代码,得到一个错误,但我不能修复它。下面是我的问题和代码:

我的app.js

代码语言:javascript
复制
var nev = require('email-verification')(mongoose);
require('./routes/db/email-verification')(nev);
require('./routes/db/passport')(passport,nev);

我的电子邮件-vertitaiton.js

代码语言:javascript
复制
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');
});


};

我的passport.js

代码语言:javascript
复制
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:无法读取未定义的属性'createTempUser‘我不知道为什么我的'nev’变量在我的passport.js中没有定义。有没有人可以帮助me>?这是非常困难的。

EN

回答 1

Stack Overflow用户

发布于 2018-08-02 22:44:00

email-verificaiton.js中,将其更改为如下所示:

代码语言:javascript
复制
function verification(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');
});


};

module.exports = {verification}

然后在app.js中,您可以更改

代码语言:javascript
复制
var nev = require('email-verification')(mongoose);

成为

代码语言:javascript
复制
var nev = require('email-verification').verification(mongoose);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51656196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档