基于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 相关文章推荐
刷新页面实现方式总结(HTML,ASP,JS)
Nov 13 Javascript
不一样的文字闪烁 轮番闪烁
Nov 11 Javascript
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
Oct 11 Javascript
13 个JavaScript 性能提升技巧分享
Jul 26 Javascript
jquery事件重复绑定的快速解决方法
Jan 03 Javascript
javascript制作的网页侧边弹出框思路及实现代码
May 21 Javascript
JS实现的用来对比两个用指定分隔符分割的字符串是否相同
Sep 19 Javascript
快速了解vue-cli 3.0 新特性
Feb 28 Javascript
基于vue展开收起动画的示例代码
Jul 05 Javascript
vue+element树组件 实现树懒加载的过程详解
Oct 21 Javascript
Nuxt pages下不同的页面对应layout下的页面布局操作
Nov 05 Javascript
原生微信小程序开发中 redux 的使用详解
Feb 18 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
php文件下载处理方法分析
2015/04/22 PHP
在Mac OS的PHP环境下安装配置MemCache的全过程解析
2016/02/15 PHP
Ajax PHP JavaScript MySQL实现简易无刷新在线聊天室
2016/08/17 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
Yii2框架实现登录、退出及自动登录功能的方法详解
2017/10/24 PHP
Laravel 实现Eloquent模型分组查询并返回每个分组的数量 groupBy()
2019/10/23 PHP
基于json的jquery地区联动效果代码
2011/07/06 Javascript
js将控件隐藏及display属性的使用介绍
2013/12/30 Javascript
jQuery+HTML5美女瀑布流布局实现方法
2015/09/21 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
Nodejs Stream 数据流使用手册
2016/04/17 NodeJs
ajax 提交数据到后台jsp页面及页面跳转问题
2017/01/19 Javascript
angularjs实现的前端分页控件示例
2017/02/10 Javascript
微信小程序 wx.login解密出现乱码的问题解决办法
2017/03/10 Javascript
JS得到当前时间的方法示例
2017/03/24 Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
2017/05/20 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
原生js实现密码输入框值的显示隐藏
2017/07/17 Javascript
微信小程序中this.data与this.setData的区别详解
2018/09/17 Javascript
Vue多环境代理配置方法思路详解
2019/06/21 Javascript
微信小程序实现拼图小游戏
2020/10/22 Javascript
使用python编写脚本获取手机当前应用apk的信息
2014/07/21 Python
Python中使用items()方法返回字典元素对的教程
2015/05/21 Python
python如何提取英语pdf内容并翻译
2020/03/03 Python
Python grpc超时机制代码示例
2020/09/14 Python
css3实现可滑动跳转的分页插件示例
2014/05/08 HTML / CSS
Mytheresa中国官网:德国时尚奢侈品商城
2017/08/04 全球购物
Zalando Lounge瑞士:时尚与生活方式购物俱乐部
2020/03/12 全球购物
企业消防安全制度
2014/02/02 职场文书
个人培训自我鉴定
2014/03/28 职场文书
房产代理公证处委托书
2014/04/04 职场文书
房屋买卖协议书
2014/04/10 职场文书
2015年服务员个人工作总结
2015/05/27 职场文书
贷款担保书范本
2015/09/22 职场文书
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python
「玫瑰之王的葬礼」舞台剧主视觉图公开
2022/03/21 日漫