【问题标题】:Why can't I manage to get post data from html form send to express.js?为什么我无法从发送到 express.js 的 html 表单中获取帖子数据?
【发布时间】:2015-05-25 00:41:52
【问题描述】:

我有这个 server.js 的代码,我真的很陌生。 我尝试获取 html 表单发送到 node.js 服务器(本地主机)的内容

server.js

//initialing the website


var express = require('express');
var app = express();

app.get('/',function(req, res){//get,put,post,delete   

res.sendFile('C:\\work\\translator\\startbootstrap-freelancer-1.0.3\\index.html');
app.use("/css", express.static(__dirname + '/startbootstrap-freelancer-1.0.3/css'));
app.use("/img", express.static(__dirname + '/startbootstrap-freelancer-1.0.3/img'));
app.use("/font-awesome", express.static(__dirname + '/startbootstrap-freelancer-1.0.3/font-awesome'));
app.use("/js", express.static(__dirname + '/startbootstrap-freelancer-1.0.3/js'));
app.use("/less", express.static(__dirname + '/startbootstrap-freelancer-1.0.3/less'));
app.use("/mail", express.static(__dirname + '/startbootstrap-freelancer-1.0.3/mail'));
app.use("/fonts", express.static(__dirname + '/startbootstrap-freelancer-1.0.3/fonts'));
    });


var server = app.listen(3000, function () {

  var host = server.address().address;
  var port = server.address().port;

  console.log('Example app listening at http://%s:%s', host, port);

});


//sending mail with gmail


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

var nodemailer = require('nodemailer');
var transporter = nodemailer.createTransport({

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

  transporter.sendMail({
    from:  'user@email.com',
    to: 'myemail@email.com',
    subject: 'contact',
    text:  'hello world'
});
 });

Html 表单

<form name="sentMessage" action="/contact" method="post" id="contact" novalidate>
<input type="text" class="form-control" name="name">
<input type="email" class="form-control" name="email">
<input type="tel" class="form-control" name="phone">
<textarea rows="5" class="form-control" name="message"></textarea>
<button type="submit" class="btn btn-success btn-lg">send</button>

我尝试了req.paramsreq.body.email 和各种方法来获取电子邮件字段中的电子邮件,但它说:“email undefiend”,似乎 server.js 不知何故没有获取值/参数什么的……

【问题讨论】:

    标签: html node.js forms post express


    【解决方案1】:

    Express 是开箱即用的最小化程序。您需要添加正文解析器中间件来处理表单。像这样:

    https://github.com/expressjs/body-parser

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多