【问题标题】:I have 2 form on same page and i need the submit button to send the information to the right app.post in express.js, how do i do it?我在同一页面上有 2 个表单,我需要提交按钮将信息发送到 express.js 中的正确 app.post,我该怎么做?
【发布时间】: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


【解决方案1】:

我认为你应该发出两个单独的AJAX 请求,发送两组具有相同名称的数据(去掉 T**** 并在服务器端只替换为 ****),然后检查查看您是否已收到主题和正文,并根据此执行您需要的操作。这样你的代码就更少了,它就可以工作了。

【讨论】:

    猜你喜欢
    • 2017-10-16
    • 1970-01-01
    • 2022-08-24
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 2019-10-01
    • 2021-08-21
    • 2011-08-11
    相关资源
    最近更新 更多