我是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值是未定义的。
答案 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>