表单的POST值通过点击提交按钮(快递)

时间:2018-04-04 09:16:18

标签: node.js express

我开始使用nodejs并表达构建一个非常简单的应用程序。

到目前为止,我正在运行一个网络服务器并为我的index.html添加了一个app.get路由,它显示了两个表单和一个提交按钮。

我希望能够在两种形式中键入字符串,单击提交按钮,然后在我的服务器上使用这两个字符串(使用表单中的这两个字符串调用函数)。

服务器

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

//body-parser -> not sure if thats the right approach...
var bodyParser = require('body-parser');
app.use(bodyParser.json());


 /* servers main page */
 app.get("/", function(req, res) {
    res.sendFile(__dirname + '/index.html');
 });


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


//goal: user types string in both forms, clicks submit, values are being 
//received from server to call a function using those strings



});

 var port = process.env.PORT || 1337;
 app.listen(port, function() {
console.log("Listening on " + port);
 });

HTML:

<form action="" method="POST">
   Subject:<br>
   <input type="text" name="subject" value="default"><br>
   Message:<br>
   <input type="text" name="message" value="default"><br><br>
   <input  type="submit" name="submit" value="Submit">
</form>

1 个答案:

答案 0 :(得分:1)

首先,忘记bodyParser中间件,自4.16起,jsonurlencoded解析器都已包含在express中。

https://github.com/expressjs/express/releases/tag/4.16.0

然后,你没有AJAX调用,而是一个简单的表单,因此这是无效的

app.use(bodyParser.json());

有无

app.use(express.urlencoded({extended:true}));

最后,在您的路由中,只读取解析中间件附加到请求的body对象的POSTed值

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

   var subject = req.body.subject;
   var message = req.body.message;

});