Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何检索用户输入的特定合作伙伴ID的电子邮件并将其发送回控制器。_Sql_Node.js_Express_Sequelize.js - Fatal编程技术网

Sql 如何检索用户输入的特定合作伙伴ID的电子邮件并将其发送回控制器。

Sql 如何检索用户输入的特定合作伙伴ID的电子邮件并将其发送回控制器。,sql,node.js,express,sequelize.js,Sql,Node.js,Express,Sequelize.js,我有个问题。 我不太清楚sequelize.js。 我有一个HTML表单,如下所示: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" conte

我有个问题。 我不太清楚sequelize.js。 我有一个HTML表单,如下所示:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Forget Password</title>
</head>
<body>
Forget Password: <br/>
<form action="/forgetpasswordpartner" method="POST">
    Enter PartnerID: 
    <input type="text" name="partnerid">
    <button type="submit" value="Send Email">Send Email</button>
</form>
</body>
</html>
我知道我的模型错了 我想要的是首先检查数据库中是否存在“partnerid”,如果存在,则在同一行记录中插入一个令牌,检索该合作伙伴id的电子邮件,并将该电子邮件id发送回控制器,以便存储在“email”变量中并发送该邮件


有人能帮我吗

使用单独的js文件发送电子邮件。因为电子邮件也可以通过其他方式访问。将其编写为接受两个参数的泛型

//utils.js
module.exports = {
    sendEmail: function(toEmail, link) {
        return new Promise(function(resolve, reject) {
            let transporter = nodemailer.createTransport({
                host: 'xxxx',
                port: xxx,
                secure: false, // true for 465, false for other ports
                auth: {
                    user: 'xxxxxx@xxxx.com', // generated ethereal user
                    pass: 'xxxxxxxxx' // generated ethereal password
                },
                //if email is sent via localhost
                tls: {
                    rejectUnauthorized: false
                }
            });

            let mailOptions = {
                from: '"xxxxxx" <xxxxxxx@xxxxx.com>', // sender address
                to: toEmail, // list of receivers
                subject: 'Reset Password', // Subject line
                text: 'A password reset for your account was requested', // plain text body
                html: "Please click the button below to change your password.<br><a href=" + link + ">" + "<h2>Change your password</h2>" + "</a> "
                // html body
            };

            // send mail with defined transport object
            transporter.sendMail(mailOptions, (error, info) => {
                if (error) {

                    res.send('Couldnot send Reset Password email.Please try again later');
                    //return console.log(error);
                    reject(error)
                } else {
                    console.log('Message sent: %s', info.messageId);
                    // Preview only available when sending through an Ethereal account
                    console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));
                    // Message sent: <b658f8ca-6296-ccf4-8306-87d57a0b4321@example.com>
                    // Preview URL: https://ethereal.email/message/WaQKMgKddxQDoou...
                    resolve("success")
                }
            });
        });
    }
}


//Require util.js

import Utils from '../utils'

exports.sendresetlinkpartner = function(req, res, next) {

    var partnerid = req.body.partnerid;
    var token = randomstring.generate({
        length: 100,
        charset: 'alphanumeric',
        capitalization: 'uppercase'
    });
    var link = "http://localhost:3000/forgetpasswordpartner/" + token;

    partner.findOne({
        where: {
            'partnerid': partnerid
        }
    }).then((fetchedPartner) => {
        fetchedPartner.update({
            token: token
        }).then((postUpdate) => {
            if (!postUpdate) {
                console.log('Email not registered');
            } else {
                Utils.sendEmail('xyz@gmail.com', link).then((postEmail) => {
                    // your logic for success
                });
            }
        });
    });
}
exports.sendresetemailpartner=function(partnerid,token,callback1,callback2){

partner.findOne({where:{'partnerid':partnerid}}).then(partner.update({'token':token},{where:{'companyemail':email}})).then((partner)=>{
    if(!partner){
        console.log('Email not registered');
        callback1();
    }
    else{
        console.log('Token Updated');
        callback2();
    }
})
//utils.js
module.exports = {
    sendEmail: function(toEmail, link) {
        return new Promise(function(resolve, reject) {
            let transporter = nodemailer.createTransport({
                host: 'xxxx',
                port: xxx,
                secure: false, // true for 465, false for other ports
                auth: {
                    user: 'xxxxxx@xxxx.com', // generated ethereal user
                    pass: 'xxxxxxxxx' // generated ethereal password
                },
                //if email is sent via localhost
                tls: {
                    rejectUnauthorized: false
                }
            });

            let mailOptions = {
                from: '"xxxxxx" <xxxxxxx@xxxxx.com>', // sender address
                to: toEmail, // list of receivers
                subject: 'Reset Password', // Subject line
                text: 'A password reset for your account was requested', // plain text body
                html: "Please click the button below to change your password.<br><a href=" + link + ">" + "<h2>Change your password</h2>" + "</a> "
                // html body
            };

            // send mail with defined transport object
            transporter.sendMail(mailOptions, (error, info) => {
                if (error) {

                    res.send('Couldnot send Reset Password email.Please try again later');
                    //return console.log(error);
                    reject(error)
                } else {
                    console.log('Message sent: %s', info.messageId);
                    // Preview only available when sending through an Ethereal account
                    console.log('Preview URL: %s', nodemailer.getTestMessageUrl(info));
                    // Message sent: <b658f8ca-6296-ccf4-8306-87d57a0b4321@example.com>
                    // Preview URL: https://ethereal.email/message/WaQKMgKddxQDoou...
                    resolve("success")
                }
            });
        });
    }
}


//Require util.js

import Utils from '../utils'

exports.sendresetlinkpartner = function(req, res, next) {

    var partnerid = req.body.partnerid;
    var token = randomstring.generate({
        length: 100,
        charset: 'alphanumeric',
        capitalization: 'uppercase'
    });
    var link = "http://localhost:3000/forgetpasswordpartner/" + token;

    partner.findOne({
        where: {
            'partnerid': partnerid
        }
    }).then((fetchedPartner) => {
        fetchedPartner.update({
            token: token
        }).then((postUpdate) => {
            if (!postUpdate) {
                console.log('Email not registered');
            } else {
                Utils.sendEmail('xyz@gmail.com', link).then((postEmail) => {
                    // your logic for success
                });
            }
        });
    });
}