基于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插件开发注意事项小结
Jun 04 Javascript
js 金额格式化来回转换示例
Feb 23 Javascript
jQuery ajax时间差导致的变量赋值问题分析
Jan 22 Javascript
JS复制对应id的内容到粘贴板(Ctrl+C效果)
Jan 23 Javascript
bootstrap table插件的分页与checkbox使用详解
Jul 23 Javascript
JavaScript定义函数的三种实现方法
Sep 23 Javascript
JavaScript判断输入是否为数字类型的方法总结
Sep 28 Javascript
微信小程序实现页面跳转传值以及获取值的方法分析
Dec 18 Javascript
在vue里面设置全局变量或数据的方法
Mar 09 Javascript
JS实现二维数组横纵列转置的方法
Apr 17 Javascript
Centos7 安装Node.js10以上版本的方法步骤
Oct 15 Javascript
vue中使用WX-JSSDK的两种方法(推荐)
Jan 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
浅析php中jsonp的跨域实例
2013/06/21 PHP
php常用Stream函数集介绍
2013/06/24 PHP
php实现转换ubb代码的方法
2015/06/18 PHP
微信公众号判断用户是否已关注php代码解析
2016/06/24 PHP
php 指定范围内多个随机数代码实例
2016/07/18 PHP
PHP基于session.upload_progress 实现文件上传进度显示功能详解
2019/08/09 PHP
js onpropertychange输入框 事件获取属性
2009/03/26 Javascript
js的写法基础分析
2011/01/17 Javascript
JQUERY实现左侧TIPS滑进滑出效果示例
2013/06/27 Javascript
JQuery的attr 与 val区别
2016/06/12 Javascript
浅谈JavaScript中数组的增删改查
2016/06/20 Javascript
jQuery数组处理函数整理
2016/08/03 Javascript
node.js使用express框架进行文件上传详解
2019/03/03 Javascript
一篇文章看懂JavaScript中的回调
2021/01/05 Javascript
Python生成随机MAC地址
2015/03/10 Python
Python文件去除注释的方法
2015/05/25 Python
python爬取酷狗音乐排行榜
2019/02/20 Python
python 读写excel文件操作示例【附源码下载】
2019/06/19 Python
python实现在cmd窗口显示彩色文字
2019/06/24 Python
详解python解压压缩包的五种方法
2019/07/05 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
2020/02/11 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
2020/04/14 Python
keras实现theano和tensorflow训练的模型相互转换
2020/06/19 Python
Javascript 高级手势使用介绍
2013/04/21 HTML / CSS
德国高尔夫商店:Par71.de
2020/11/29 全球购物
保加利亚服装和鞋类购物网站:Bibloo.bg
2020/11/08 全球购物
写好自荐信的几个要点
2013/12/26 职场文书
学生安全责任书
2014/04/15 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
上课睡觉检讨书300字
2014/11/18 职场文书
内勤岗位职责
2015/02/10 职场文书
自书遗嘱范文
2015/08/07 职场文书
2015年小学体育教师工作总结
2015/10/23 职场文书
python中数组和列表的简单实例
2022/03/25 Python
Ruby处理CSV数据方法详解
2022/04/18 Ruby
Elasticsearch Recovery 详细介绍
2022/04/19 Java/Android