【发布时间】:2015-05-26 00:00:41
【问题描述】:
是 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('/');
});
【问题讨论】:
-
这很模糊,他们是要分开路线(app.post 位)还是同一路线?如果他们要去同一个,使用 JS 收集所有信息并发出 post 请求。如果他们要分开路由,请改为发出两个 ajax 请求?此外,当您使用帖子时,您需要将
method="POST"放在表单的顶部,尽管这仍然只会发送一个表单的数据。 -
他们都走相同的路线,但他们使用 server.js 中编写的不同操作。
-
我已经添加了代码,所以你可以理解我的意思。
标签: html node.js forms post express