基于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,alert出现乱码问题的解决方法
Jun 19 Javascript
jquery ajax应用中iframe自适应高度问题解决方法
Apr 12 Javascript
使用Node.js实现一个简单的FastCGI服务器实例
Jun 09 Javascript
js实现Select列表各项上移和下移的方法
Aug 14 Javascript
jquery实现漂亮的二级下拉菜单代码
Aug 26 Javascript
JavaScript 弹出子窗体并返回结果到父窗体的实现代码
May 28 Javascript
vue中for循环更改数据的实例代码(数据变化但页面数据未变)
Sep 15 Javascript
javascript input输入框模糊提示功能的实现
Sep 25 Javascript
vue input 输入校验字母数字组合且长度小于30的实现代码
May 16 Javascript
jQuery基于闭包实现的显示与隐藏div功能示例
Jun 09 jQuery
vant 自定义 van-dropdown-item的用法
Aug 05 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
Aug 07 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
基于header的一些常用指令详解
2013/06/06 PHP
php提高网站效率的技巧
2015/09/29 PHP
浅谈PHP实现大流量下抢购方案
2017/12/15 PHP
PHP时间处理类操作示例
2018/09/05 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
2020/12/29 PHP
网页的标准,IMG不支持onload标签怎么办
2006/06/29 Javascript
jCallout 轻松实现气泡提示功能
2013/09/22 Javascript
JQuery实现table行折叠效果以JSON做数据源
2014/05/26 Javascript
javascript结合CSS实现苹果开关按钮特效
2015/04/07 Javascript
JS实现超简单的鼠标拖动效果
2015/11/02 Javascript
使用基于Node.js的构建工具Grunt来发布ASP.NET MVC项目
2016/02/15 Javascript
TypeScript Type Innference(类型判断)
2016/03/10 Javascript
基于JS代码实现导航条弹出式悬浮菜单
2016/06/17 Javascript
jQuery多个版本和其他js库冲突的解决方法
2016/08/11 Javascript
javascript 数组去重复(在线去重工具)
2016/12/17 Javascript
深入理解ES6学习笔记之块级作用域绑定
2017/08/19 Javascript
Angular2监听页面大小变化的解决方法
2017/10/09 Javascript
webpack dll打包重复问题优化的解决
2018/10/10 Javascript
基于vue2的canvas时钟倒计时组件步骤解析
2018/11/05 Javascript
在vue中使用express-mock搭建mock服务的方法
2018/11/07 Javascript
[03:05]DOTA2英雄基础教程 嗜血狂魔
2013/12/10 DOTA
[02:08]我的刀塔不可能这么可爱 胡晓桃_1
2014/06/20 DOTA
Python的爬虫包Beautiful Soup中用正则表达式来搜索
2016/01/20 Python
Python使用asyncio包处理并发详解
2017/09/09 Python
Python使用getpass库读取密码的示例
2017/10/10 Python
浅谈flask截获所有访问及before/after_request修饰器
2018/01/18 Python
python的格式化输出(format,%)实例详解
2018/06/01 Python
python Tcp协议发送和接收信息的例子
2019/07/22 Python
python区分不同数据类型的方法
2019/10/14 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
2019/11/11 Python
Python修改列表值问题解决方案
2020/03/06 Python
html5 touch事件实现触屏页面上下滑动(一)
2016/03/10 HTML / CSS
武汉世纪畅想数字传播有限公司.NET笔试题
2014/07/22 面试题
保险公司晨会主持词
2014/03/22 职场文书
企业党建工作总结2015
2015/05/26 职场文书
复兴之路展览观后感
2015/06/02 职场文书