2015-10-15 94 views
0

我是NodeJs的新手。 试图找出为什么下面的代码不适合我。 我基本上试图从一个HTML文件做一个简单的帖子。 如果我从curl发送发布请求,或者如果我使用AJAX发布,它工作正常。 想知道以下帖子有什么问题。NodeJS - 获取表单发布数据

<!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

输入你绝对不应该要求依赖从你的/ usr/local/bin目录下!使用'npm install'在本地安装它们,并只需要使用它们的名称即可。阅读更多关于http://mycodesmells.com/post/node-basics-looking-for-package/ – slomek

回答

1

首先,您的表单字段需要一个名称值而不是一个id。 因此改变

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

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

谢谢帕特里克。 – Junaidi

0
var str = req.body.txtOne; 

您正在搜索具有NAME = “txtOne”

ID只能针对DOM

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

非常感谢E.K. – Junaidi