Html 我在同一页上有两个表单,我需要“提交”按钮将信息发送到正确的app.post in express.js,我该怎么做?

Html 我在同一页上有两个表单,我需要“提交”按钮将信息发送到正确的app.post in express.js,我该怎么做?,html,node.js,forms,post,express,Html,Node.js,Forms,Post,Express,是关于html表单中的action=”“造成差异,还是app.post(“/…”,…)造成差异 app.post('/translate', function (req, res) { } 我已经尝试了action=“/translate”,因此它将与app.post中的相同,但仍然不起作用 在这里,您可以看到相互app.post,但在同一页上的表单编号1和表单编号2中有两个操作 app.post('/contact', function (req, res) { //for both f

是关于html表单中的action=”“造成差异,还是app.post(“/…”,…)造成差异

app.post('/translate', function (req, res) { }
我已经尝试了action=“/translate”,因此它将与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('/');
 });

我认为您应该发出两个单独的请求,用相同的名称发送两组数据(去掉T****并在服务器端用****替换),然后检查是否已发送主题和正文,并根据该请求执行所需操作。这样,您的代码就少了,而且可以正常工作。

这是一个相当模糊的问题,他们是要分开路由(app.post位)还是要到同一路由?如果他们要去同一个地方,使用JS收集所有信息并发出post请求。如果他们要分开路由,那么改为发出两个ajax请求?另外,在使用post时,您需要将
method=“post”
放在表单顶部,尽管这仍然只会发送一个表单的数据。它们都使用相同的路径,但使用的操作不同,都是在server.js中编写的。我添加了代码,以便您能够理解我的意思。