NodeJS - 获取表单发布数据

时间:2015-10-15 12:44:55

标签: node.js post

我是NodeJs的新手。 试图弄清楚为什么以下代码对我不起作用。 我基本上试图从HTML文件中做一个简单的帖子。 如果我从curl发送post请求,或者如果我使用AJAX post,它工作正常。 想知道以下帖子的错误。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
<form method="post" action="http://localhost:3000/">
    <table>
        <tr>
            <td><input type="text" id="txtOne"/></td>
        </tr>
        <tr>
            <td>
                <input type="submit" value="Submit Data">
            </td>
        </tr>
    </table>
</form>
</body>
</html>

我的node.js文件是

var express   =     require("/usr/local/bin/node_modules/express");
var bodyParser  =    require("/usr/local/bin/node_modules/body-parser");
var app       =     express();
app.use(bodyParser.urlencoded({ extended: false }));

app.get('/',function(req,res){
    res.sendfile("mypage.html");
});

app.post('/',function(req,res){
    var str = req.body.txtOne;
    console.log("From Client POST request: Text = " + str);
    res.end(str);
});

app.listen(3000);

我的str值是未定义的。

2 个答案:

答案 0 :(得分:1)

首先,您的表单字段需要名称值而不是ID。 所以改变

 <td><input type="text" id="txtOne"/></td>

 <td><input type="text" name="txtOne"/></td>

答案 1 :(得分:0)

var str = req.body.txtOne;

您正在搜索名称=“txtOne”

的输入

id仅适用于DOM

<td><input type="text" name="txtOne"/></td>