基于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 相关文章推荐
jquery each()源代码
Feb 14 Javascript
浅析JavaScript中的隐式类型转换
Dec 05 Javascript
用js来刷新当前页面保留参数的具体实现
Dec 23 Javascript
confirm的用法示例用于按钮操作时确定是否执行
Jun 19 Javascript
分享十五款 jQuery 社交网络分享插件
May 16 Javascript
jQuery获取页面及个元素高度、宽度的总结——超实用
Jul 28 Javascript
JS实现网页每隔3秒弹出一次对话框的方法
Nov 09 Javascript
JavaScript function函数种类详解
Feb 22 Javascript
JavaScript新增样式规则(推荐)
Jul 19 Javascript
微信小程序实现的canvas合成图片功能示例
May 03 Javascript
使用apifm-wxapi快速开发小程序过程详解
Aug 05 Javascript
element-ui中el-upload多文件一次性上传的实现
Dec 02 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中memcache的应用
2013/06/18 PHP
递归删除一个节点以及该节点下的所有节点示例
2014/03/19 PHP
php使用MySQL保存session会话的方法
2015/06/18 PHP
PHP sdk文档处理常用代码示例解析
2020/12/09 PHP
javascript html 静态页面传参数
2009/04/10 Javascript
JQuery+Ajax无刷新分页的实例代码
2014/02/08 Javascript
jquery操作checkbox示例分享
2014/07/21 Javascript
JS实现超过长度限制后自动跳转下一款文本框的方法
2015/02/23 Javascript
JavaScript DOM事件(笔记)
2015/04/08 Javascript
浅谈被jQuery抛弃的函数及替代函数
2015/05/03 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
2016/01/07 Javascript
JavaScript基于对象去除数组重复项的方法
2016/10/09 Javascript
原生JS版和jquery版实现checkbox的全选/全不选/点选/行内点选(Mr.Think)
2016/10/29 Javascript
微信小程序 删除项目工程实现步骤
2016/11/10 Javascript
详解Angular之constructor和ngOnInit差异及适用场景
2017/06/22 Javascript
详解vue-cli本地环境API代理设置和解决跨域
2017/09/05 Javascript
python使用chardet判断字符串编码的方法
2015/03/13 Python
Python的Flask框架的简介和安装方法
2015/11/13 Python
Python中turtle作图示例
2017/11/15 Python
Python爬虫爬取一个网页上的图片地址实例代码
2018/01/16 Python
浅析python协程相关概念
2018/01/20 Python
Python之pymysql的使用小结
2019/07/01 Python
Apache,wsgi,django 程序部署配置方法详解
2019/07/01 Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
2019/07/23 Python
Pytorch: 自定义网络层实例
2020/01/07 Python
Python双链表原理与实现方法详解
2020/02/22 Python
python GUI库图形界面开发之PyQt5信号与槽基本操作
2020/02/25 Python
Python爬虫之Selenium下拉框处理的实现
2020/12/04 Python
pandas针对excel处理的实现
2021/01/15 Python
Oracle中delete,truncate和drop的区别
2016/05/05 面试题
星级党支部申报材料
2014/05/31 职场文书
教师党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
2016年学习雷锋精神广播稿
2015/12/17 职场文书
分家协议书范本
2016/03/22 职场文书
如何在Python中创建二叉树
2021/03/30 Python
如何避免mysql启动时错误及sock文件作用分析
2022/01/22 MySQL