我在同一页面上有2个表单,我需要提交按钮将信息发送到express.js中的正确app.post,我该怎么办?

时间:2015-05-26 00:00:42

标签: html node.js forms post express

是关于行动=" "在html表单中产生差异,或app.post(" /..",...)产生差异?

app.post('/translate', function (req, res) { }

我尝试过动作=" /翻译"所以它会像app.post一样,但它仍然没有用。

在这里你可以看到相互app.post但在两个动作中,对于同一页面上的表单编号1和表单编号2。

app.post('/contact', function (req, res) { 

//for both forms
var nodemailer = require('nodemailer');
var transporter = nodemailer.createTransport({

    service: 'gmail',
    auth: {
        user: 'my_email@gmail.com',
        pass: 'my_password'
    }
});

//for form number1
var name1=req.body.name;
var email1=req.body.email;
var telephone1=req.body.phone;
var subject1=req.body.subject;
var message1=req.body.message;

  transporter.sendMail({
    from:  email1,
    to: 'my_email@gmail.com',
    subject: subject1 +"sender:"+name1,
    text:  message1 +"phone number:"+telephone1+"email:"+email1


});
}

//for form number 2 
var name2=req.body.Tname;
var email2=req.body.Temail;
var telephone2=req.body.Tphone;
  transporter.sendMail({
    from:  email2,
    to: 'my_email@gmail.com',
    subject:  "contact "+"sender:"+name2,
    text: "phone:"+telephone2+"email:"+email2  

});


 res.redirect('/');
 });

1 个答案:

答案 0 :(得分:0)

我认为你应该发出两个单独的AJAX请求,发送两组具有相同名称的数据(摆脱T ****并在服务器端替换为****),然后检查您是否已经发送了主题和正文,并根据它做了您需要的工作。通过这种方式,您可以获得更少的代码并且它可以正常工作。