基于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代码
Jan 01 Javascript
javascript复制粘贴与clipboardData的使用
Oct 16 Javascript
JsRender实用入门教程
Oct 31 Javascript
jQuery中noConflict()用法实例分析
Feb 08 Javascript
javascript实现类似java中getClass()得到对象类名的方法
Jul 27 Javascript
js实现图片左右滚动效果
Feb 27 Javascript
Vue实现路由跳转和嵌套
Jun 20 Javascript
vue的基本用法与常见指令
Aug 15 Javascript
微信小程序 动画的简单实例
Oct 12 Javascript
vue权限管理系统的实现代码
Jan 17 Javascript
浅谈Vue页面级缓存解决方案feb-alive(上)
Apr 14 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
May 28 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代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
ajax取消挂起请求的处理方法
2013/03/18 PHP
基于PHP一些十分严重的缺陷详解
2013/06/03 PHP
php基于curl重写file_get_contents函数实例
2016/11/08 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
2017/08/31 PHP
Prototype 学习 Prototype对象
2009/07/12 Javascript
基于jquery的固定表头和列头的代码
2012/05/03 Javascript
js substr支持中文截取函数代码(中文是双字节)
2013/04/17 Javascript
js验证整数加保留小数点的简单实例
2013/12/02 Javascript
javascript控制在光标位置插入文字适合表情的插入
2014/06/09 Javascript
js实现文章文字大小字号功能完整实例
2014/11/01 Javascript
Jquery获取第一个子元素简单实例
2016/06/02 Javascript
javascript实现的全国省市县无刷新多级关联菜单效果代码
2016/08/01 Javascript
详谈jQuery中使用attr(), prop(), val()获取value的异同
2017/04/25 jQuery
小程序关于请求同步的总结
2019/05/05 Javascript
Vue 的双向绑定原理与用法揭秘
2020/05/06 Javascript
jQuery HTML获取内容和属性操作实例分析
2020/05/20 jQuery
js实现双色球效果
2020/08/02 Javascript
[01:18]PWL开团时刻DAY4——圣剑与抢盾
2020/11/03 DOTA
[53:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第一场 1月31日
2021/03/11 DOTA
Tornado协程在python2.7如何返回值(实现方法)
2017/06/22 Python
python和pygame实现简单俄罗斯方块游戏
2021/02/19 Python
Python从单元素字典中获取key和value的实例
2018/12/31 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
2019/12/04 Python
Python实现AI换脸功能
2020/04/10 Python
如何手工释放资源
2013/12/15 面试题
《走一步再走一步》教学反思
2014/02/15 职场文书
授权委托书(完整版)
2014/09/10 职场文书
小学教师师德师风个人整改措施
2014/09/18 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
工作态度不好检讨书
2015/05/06 职场文书
幼儿园老师工作总结2015
2015/05/22 职场文书
英语专业毕业论文答辩开场白
2015/05/27 职场文书
2016先进集体事迹材料范文
2016/02/25 职场文书
Python学习之迭代器详解
2022/04/01 Python