无法将数据从HTML表单发送到节点服务器

时间:2014-11-05 09:38:57

标签: javascript node.js

我已经设置了一个简单的HTML表单,如下所示:

<!doctype html>
<html>
    <head>
        <title>Testing Echo server</title>
    </head>
    <body>
        <form method="post" action="/">
            <input type="text" id="keyword" name="keyword" />
            <input type="submit" value="echo" id="submit" />
        </form>
    </body>
</html>

我的app.js看起来像这样:

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

app.get('/', function (req, res) {
    res.sendFile(__dirname + '/index.html');
});

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

        console.log(req.params);  // logged as {}
        res.writeHead(200);
        //req.pipe(res);       // throws error
        res.write('abc');      // works
        res.end();

});

app.listen(8080);

我无法访问表单发送的参数。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

首先,如果您不想自己从http标头中提取数据,则需要body-parser middleware

然后你不需要访问params,因为你没有任何东西,但请求的主体是req.body