Html 我在同一页上有两个表单,我需要“提交”按钮将信息发送到正确的app.post in express.js,我该怎么做?
是关于html表单中的action=”“造成差异,还是app.post(“/…”,…)造成差异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
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中编写的。我添加了代码,以便您能够理解我的意思。