基于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插件使用介绍
Mar 20 Javascript
jQuery消息提示框插件Tipso
May 04 Javascript
JS实时弹出新消息提示框并有提示音响起的实现代码
Apr 20 Javascript
JS实现弹出居中的模式窗口示例
Jun 20 Javascript
微信小程序 template模板详解及实例
Feb 21 Javascript
bootstrap table方法之expandRow-collapseRow展开或关闭当前行数据
Aug 09 Javascript
jqgrid实现简单的单行编辑功能
Sep 30 Javascript
jQuery与vue实现拖动验证码功能
Jan 30 jQuery
Vue中全局变量的定义和使用
Jun 05 Javascript
JavaScript数组排序小程序实现解析
Jan 13 Javascript
Vue3项目打包后部署到服务器 请求不到后台接口解决方法
Feb 06 Javascript
js中复选框的取值及赋值示例详解
Oct 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
基于Windows下Apache PHP5.3.1安装教程
2010/01/08 PHP
PHP安全技术之 实现php基本安全
2010/09/04 PHP
在php中判断一个请求是ajax请求还是普通请求的方法
2011/06/28 PHP
谨慎使用PHP的引用原因分析
2012/09/06 PHP
PHP超级全局变量数组小结
2012/10/04 PHP
PHP的foreach中使用引用时需要注意的一个问题和解决方法
2014/05/29 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
2014/11/14 PHP
php中http与https跨域共享session的解决方法
2014/12/20 PHP
thinkphp3.2框架中where条件查询用法总结
2019/08/13 PHP
JS跨域总结
2012/08/30 Javascript
javascript获取鼠标点击元素对象(示例代码)
2013/12/20 Javascript
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
使用mouse事件实现简单的鼠标经过特效
2015/01/30 Javascript
JavaScript实现节点的删除与序号重建实例
2015/08/05 Javascript
JS基于面向对象实现的拖拽功能示例
2016/12/20 Javascript
详解Angular Reactive Form 表单验证
2017/07/06 Javascript
探秘vue-rx 2.0(推荐)
2018/09/21 Javascript
JS实现可切换图片的幻灯切换效果示例
2019/05/24 Javascript
Layui点击图片弹框预览的实现方法
2019/09/16 Javascript
JQuery中DOM节点的操作与访问方法实例分析
2019/12/23 jQuery
jQuery实现购物车全功能
2021/01/11 jQuery
[02:26]2016国际邀请赛8月3日开战 中国军团出征西雅图
2016/08/02 DOTA
深入理解Python对Json的解析
2017/02/14 Python
Django Rest framework之权限的实现示例
2018/12/17 Python
Python数据类型之列表和元组的方法实例详解
2019/07/08 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
利用python对mysql表做全局模糊搜索并分页实例
2020/07/12 Python
区分python中的进程与线程
2020/08/13 Python
Python安装并操作redis实现流程详解
2020/10/13 Python
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
adidas菲律宾官网:adidas PH
2020/02/07 全球购物
关于递归的一道.NET面试题
2013/05/12 面试题
列车长先进事迹材料
2014/01/25 职场文书
自动一体化专业求职信
2014/03/15 职场文书
行政司机岗位职责
2015/04/10 职场文书
MySQL学习总结-基础架构概述
2021/04/05 MySQL