基于Express框架使用POST传递Form数据

本文实例为大家分享了基于Express框架使用POST传递Form数据的具体代码,供大家参考,具体内容如下

客户端使用Form发送数据

在客户端Html文件中Form代码如下:

<!-- POST test -->
<form action=\"/test\" method=\"post\" id=\"foo\" >
 <input type=\"text\" name=\"username\">
 <input type=\"password\" name=\"password\">
 <input type=\"submit\">
</form>

在服务器端处理\’/test\’ POST请求的代码如下: 

var bodyParser = require(\'body-parser\');
 
// ... 
 
// create application/json parser
var jsonParser = bodyParser.json()
 
// create application/x-www-form-urlencoded parser
var urlencodedParser = bodyParser.urlencoded({ extended: false })
 
// ... 
 
// 
// request from form of the html file
// 
app.post(\'/test\', urlencodedParser, function(req, res) { 
 if (!req.body) return res.sendStatus(400);
 
 console.log(\'Username: \' + req.body.username);
 console.log(\'Password: \' + req.body.password);
 
 res.send(\'Welcome, \' + req.body.username); 
});

客户端使用Node.js发送数据

在客户端使用Node.js发送Form数据的代码

const http = require(\'http\');
 
var data = { 
 username: \'foo\', 
 password: \"test\" 
}; 
 
var postData = require(\'querystring\').stringify(data); 
console.log( postData ); 
 
function form()
{
 var options = { 
 method: \"POST\", 
 host: \"localhost\", 
 port: 80, 
 path: \"/test\", 
 headers: { 
  \"Content-Type\": \'application/x-www-form-urlencoded\', 
  \"Content-Length\": postData.length 
 } 
 }; 
 
 var body = \'\'; 
 var request = http.request( options, function(res) { 
 // show results 
 console.log(\'STATUS: \' + res.statusCode); 
 res.setEncoding(\'utf8\'); 
 res.on(\'data\', function(chunk) { 
  body += chunk;
  console.log(\'BODY: \' + chunk); 
 }); 
 
 res.on(\'end\', function(err) { 
  console.log( \' complete.\'); 
 }); 
 }); 
 request.on(\"error\", function(e) { 
  console.log(\'upload Error: \' + e.message); 
 }) 
 
 request.write( postData );
 request.end(); 
}
 
form();

客户端使用jQuery发送数据

客户端使用jQuery的 $.ajax post数据,

<!DOCTYPE html>
<html>
<head>
 <meta charset=\"utf-8\">
 <title>Post Data</title>
 <script src=\"jquery.min.js\" type=\"text/javascript\"></script>
 <script src=\"client.js\" type=\"text/javascript\"></script>
</head>
<body>
 
<!-- POST test -->
<form action=\'/update\' method=\'post\' id=\'foo\' > Parameters
<table border=\"0\">
 <tr>
 <td> File Name</td>
 <td> <input type=\"text\" name=\"filename\" value = \"foo.txt\" /></td>
 </tr>
</table> 
</form>
<button name=\"button1\" id=\'startButton\' > Update</button>
 
</body>
</html>

client.js 

$(document).ready(function(){ 
 
 //try joining the server when the user clicks the connect button
 $(\"#startButton\").click(function () {
 var filename = $(\"#input[name=filename]\").val();
 
 $.ajax({
 type: \'POST\',
 url: \"/update\",
 // dataType: \"jsonp\",
 data: { \"filename\": filename} , 
 jsonpCallback: \'callback\', 
 success: function (data) {
  // ...
 },
 error: function (xhr, status, error) {
  console.log(\'Error: \' + error.message);
 },
 });
 
 });
});

server端使用node.js解析数据

//
// Modules 
var express = require(\'express\'); 
var bodyParser = require(\'body-parser\'); 
 
//
// Global variables 
var app = express(); 
 
// body parser
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
 
 
/* POST /update listing. */
app.post(\'/update\', function(req, res, next) {
 // Checking require
 if (!req.body) return res.sendStatus(400); 
 
 console.log(\'filename: \' + req.body.filename); 
 
 res.redirect(\'./\');
});

参考文献:expressjs/body-parser 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容