Node.js 如何修复';重定向问题';NodeJS中的错误?

Node.js 如何修复';重定向问题';NodeJS中的错误?,node.js,Node.js,我有水疗。我使用nodejs+mongoDb。在我的水疗结束时,我有联系表格。当访问者填写联系人表单并单击提交按钮时。我收到一封电子邮件。在这里之前一切都很好。但是,形式不是重定向。在标题栏中,加载指示器始终转动。我只想回同一页 我试过这些,但不起作用 res.render(“/”,{Error:“block”}); 请求重定向('/') 这是我的Ejs代码Index.Ejs 这是我的发帖方法 module.exports = function (app) { app.get('/

我有水疗。我使用nodejs+mongoDb。在我的水疗结束时,我有联系表格。当访问者填写联系人表单并单击提交按钮时。我收到一封电子邮件。在这里之前一切都很好。但是,形式不是重定向。在标题栏中,加载指示器始终转动。我只想回同一页

我试过这些,但不起作用

res.render(“/”,{Error:“block”}); 请求重定向('/')

这是我的Ejs代码Index.Ejs


这是我的发帖方法

module.exports = function (app) {

    app.get('/', function (req, res) {
        Resume.find({}, function (err, data) {
            console.log(data)
            if (err) throw err;
            res.render('index', { resumes: data });
        });
    });

    app.post('/', urlencodedParser, function (req, res) {
        console.log(req.body);
        console.log(req.body.nameContact);
        main(req.body.nameContact, req.body.emailContact, req.body.subjectContact, req.body.messageContact)
            .then(() => {
                console.log("Email Sended");            
            }, err => { console.log("Email Error: " + err) })
            .catch(console.error);
    });
};

async function main(nameContact, emailContact, subjectContact, messageContact) {

    // Generate test SMTP service account from ethereal.email
    // Only needed if you don't have a real mail account for testing
    //let testAccount = await nodemailer.createTestAccount();

    // create reusable transporter object using the default SMTP transport
    let transporter = nodemailer.createTransport({
        host: "smtp.office365.com",
        port: 587,
        secure: false, // true for 465, false for other ports
        auth: {
            user: contactFormController.CONTACT_USER, // generated ethereal user
            pass: contactFormController.CONTACT_PASS // generated ethereal password
        }
    });

    // send mail with defined transport object
    let info = await transporter.sendMail({
        from: contactFormController.CONTACT_USER,
        replyTo: '<"' + emailContact + '">', // sender address
        to: "email", // list of receivers
        subject: subjectContact, // Subject line
        text: messageContact, // plain text body
        html: "<b>'" + messageContact + "'</b>" // html body
    });

    console.log("Message sent: %s", info.messageId);
    // Message sent: <b658f8ca-6296-ccf4-8306-87d57a0b4321@example.com>

    // Preview only available when sending through an Ethereal account
    console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info));
    // Preview URL: https://ethereal.email/message/WaQKMgKddxQDoou...
}

module.exports=函数(应用程序){
app.get('/',函数(req,res){
Resume.find({},函数(err,data){
console.log(数据)
如果(错误)抛出错误;
res.render('index',{resume:data});
});
});
app.post(“/”,urlencodedParser,函数(req,res){
控制台日志(请求主体);
控制台日志(请求主体名称联系人);
main(req.body.nametact、req.body.emailContact、req.body.subjectContact、req.body.messageContact)
.然后(()=>{
控制台日志(“发送电子邮件”);
},err=>{console.log(“电子邮件错误:+err)})
.catch(控制台错误);
});
};
异步函数main(nameContact、emailContact、subjectContact、messageContact){
//从ethereal.email生成测试SMTP服务帐户
//仅当您没有用于测试的真实邮件帐户时才需要
//让testAccount=等待NodeEmailer.createTestAccount();
//使用默认SMTP传输创建可重用的传输对象
让transporter=nodeEmailer.createTransport({
主机:“smtp.office365.com”,
港口:587,
安全:false,//对于465为true,对于其他端口为false
认证:{
用户:contactFormController.CONTACT\u user,//生成的ethereal用户
pass:contactFormController.CONTACT\u pass//生成的ethereal密码
}
});
//使用定义的传输对象发送邮件
let info=wait transporter.sendMail({
发件人:contactFormController.CONTACT\u用户,
答复:'',//发件人地址
收件人:“电子邮件”//收件人列表
主题:主题联系人,//主题行
text:messageContact,//纯文本正文
html:“'”+messageContact+“'”//html正文
});
console.log(“发送的消息:%s”,info.messageId);
//已发送的消息:
//预览仅在通过Ethereal帐户发送时可用
log(“预览URL:%s”,nodeEmailer.getTestMessageUrl(info));
//预览URL:https://ethereal.email/message/WaQKMgKddxQDoou...
}

看起来您正在使用express。在express
中,重定向
方法可用于
响应
对象,而不是
请求
对象<代码>快车

用法是
response.redirect('/path')

此外,您不能同时进行渲染和重定向(
标题
只能发送一次):

res.redirect('/');他为我工作。非常感谢你。
res.render("/",{Error:"block"});
res.redirect('/');