基于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 相关文章推荐
可以把编码转换成 gb2312编码lib.UTF8toGB2312.js
Aug 21 Javascript
js禁止document element对象选中文本实现代码
Mar 21 Javascript
jQuery中filter()方法用法实例
Jan 06 Javascript
jQuery实现html table行Tr的复制、删除、计算功能
Jul 10 jQuery
浅谈Express异步进化史
Sep 09 Javascript
js精确的加减乘除实例
Nov 14 Javascript
Angular中管道操作符(|)的使用方法
Dec 15 Javascript
vue项目打包部署到服务器的方法示例
Aug 27 Javascript
JavaScript读写二进制数据的方法详解
Sep 09 Javascript
jquery实现动态添加附件功能
Oct 23 jQuery
p5.js绘制创意自画像
Nov 04 Javascript
如何实现iframe父子传参通信
Feb 05 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
Codeigniter实现多文件上传并创建多个缩略图
2014/06/12 PHP
PHP查看SSL证书信息的方法
2016/09/22 PHP
页面中body onload 和 window.onload 冲突的问题的解决
2009/07/01 Javascript
JQuery实现用户名无刷新验证的小例子
2013/03/22 Javascript
表格奇偶行设置不同颜色的核心JS代码
2013/12/24 Javascript
最简单的JavaScript验证整数、小数、实数、有效位小数正则表达式
2015/04/17 Javascript
javascript运动详解
2015/07/06 Javascript
javascript中利用柯里化函数实现bind方法
2016/04/29 Javascript
详解如何在NodeJS项目中优雅的使用ES6
2017/04/22 NodeJs
Vue框架中正确引入JS库的方法介绍
2017/07/30 Javascript
如何在wxml中直接写js代码(wxs)
2019/11/14 Javascript
javascript实现贪吃蛇经典游戏
2020/04/10 Javascript
JavaScript实现五子棋小游戏
2020/10/26 Javascript
如何在Vue项目中添加接口监听遮罩
2021/01/25 Vue.js
Python爬取Coursera课程资源的详细过程
2014/11/04 Python
python操作MySQL 模拟简单银行转账操作
2017/09/27 Python
一看就懂得Python的math模块
2018/10/21 Python
详解如何设置Python环境变量?
2019/05/13 Python
Keras中的多分类损失函数用法categorical_crossentropy
2020/06/11 Python
django和flask哪个值得研究学习
2020/07/31 Python
Python+Opencv身份证号码区域提取及识别实现
2020/08/25 Python
python中二分查找法的实现方法
2020/12/06 Python
Scrapy+Selenium自动获取cookie爬取网易云音乐个人喜爱歌单
2021/02/01 Python
世界上最好的旅行夹克:BauBax
2018/12/23 全球购物
MAC Cosmetics官方网站:魅可专业艺术彩妆
2019/04/10 全球购物
物流创业计划书
2014/02/01 职场文书
旅游市场营销方案
2014/03/09 职场文书
普通党员四风问题对照检查材料
2014/09/27 职场文书
学生不讲诚信检讨书
2014/09/29 职场文书
三八红旗手事迹材料
2014/12/26 职场文书
酒店辞职书怎么写
2015/02/26 职场文书
教师师德表现自我评价
2015/03/05 职场文书
2015年世界急救日宣传活动方案
2015/05/06 职场文书
导游词之山东八仙过海景区
2019/11/11 职场文书
golang语言指针操作
2022/04/14 Golang
台积电称即便经济低迷也没有降价的计划
2022/04/21 数码科技