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


Posted in Javascript onAugust 10, 2019

本文实例为大家分享了基于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 

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

Javascript 相关文章推荐
新闻内页-JS分页
Jun 07 Javascript
鼠标移入移出事件改变图片的分辨率的两种方法
Dec 17 Javascript
javascript文件中引用依赖的js文件的方法
Mar 17 Javascript
iframe里面的元素触发父窗口元素事件的jquery代码
Oct 19 Javascript
javascript编写实用的省市选择器
Feb 12 Javascript
浅析javascript中的DOM
Mar 01 Javascript
JavaScript中实现键值对应的字典与哈希表结构的示例
Jun 12 Javascript
轻量级富文本编辑器wangEditor结合vue使用方法示例
Oct 10 Javascript
JavaScript如何处理移动端拍摄图片旋转问题
Nov 16 Javascript
JavaScript实现飞舞的泡泡效果
Feb 07 Javascript
vue中封装axios并实现api接口的统一管理
Dec 25 Vue.js
如何使JavaScript休眠或等待
Apr 27 Javascript
Vue实现点击显示不同图片的效果
Aug 10 #Javascript
vue+eslint+vscode配置教程
Aug 09 #Javascript
一个手写的vue放大镜效果
Aug 09 #Javascript
详解Vue-cli3.X使用px2rem遇到的问题
Aug 09 #Javascript
微信小程序引入模块中wxml、wxss、js的方法示例
Aug 09 #Javascript
小程序Request的另类用法详解
Aug 09 #Javascript
一篇文章弄懂javascript中的执行栈与执行上下文
Aug 09 #Javascript
You might like
Smarty模板快速入门
2007/01/04 PHP
PHP实现读取一个1G的文件大小
2013/08/24 PHP
Laravel框架表单验证详解
2014/09/04 PHP
php生成RSS订阅的方法
2015/02/13 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
php装饰者模式简单应用案例分析
2019/10/23 PHP
原生javascript实现图片轮播效果代码
2010/09/03 Javascript
jquery 单击li防止重复加载的实现代码
2010/12/24 Javascript
JavaScript+CSS无限极分类效果完整实现方法
2015/12/22 Javascript
信息页文内画中画广告js实现代码(文中加载广告方式)
2016/01/03 Javascript
jquery属性,遍历,HTML操作方法详解
2016/09/17 Javascript
Angular之指令Directive用法详解
2017/03/01 Javascript
JS实现简易换图时钟功能分析
2018/01/04 Javascript
JS 验证码功能的三种实现方式
2018/11/26 Javascript
Vuex modules模式下mapState/mapMutations的操作实例
2019/10/17 Javascript
Python保存MongoDB上的文件到本地的方法
2016/03/16 Python
Python实现使用request模块下载图片demo示例
2019/05/24 Python
python3下载抖音视频的完整代码
2019/06/05 Python
Python虚拟环境的原理及使用详解
2019/07/02 Python
Python中IP地址处理IPy模块的方法
2019/08/16 Python
Python上下文管理器全实例详解
2019/11/12 Python
keras实现调用自己训练的模型,并去掉全连接层
2020/06/09 Python
python用Configobj模块读取配置文件
2020/09/26 Python
CSS3模块的目前的状况分析
2010/02/24 HTML / CSS
Expedia泰国:预订机票、酒店和旅游包(航班+酒店)
2016/09/27 全球购物
Linux机考试题
2015/10/16 面试题
生物化学研究助理员求职信
2013/10/09 职场文书
门诊挂号室室长岗位职责
2013/11/27 职场文书
写自荐信三大法宝
2014/01/24 职场文书
《影子》教学反思
2014/02/21 职场文书
2015年后备干部工作总结
2015/05/15 职场文书
预备党员转正党小组意见
2015/06/01 职场文书
小学一年级班主任工作经验交流材料
2015/11/02 职场文书
2016年社区六一儿童节活动总结
2016/04/06 职场文书
Python中使用ipython的详细教程
2021/06/22 Python
关于PHP数组迭代器的使用方法实例
2021/11/17 PHP