基于Express框架使用POST传递Form数据
作者:cocoonyang 发布时间:2024-06-05 09:52:26
标签:Express,POST,Form
本文实例为大家分享了基于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
来源:https://blog.csdn.net/cocoonyang/article/details/52311155


猜你喜欢
- 在Python语言中,Uincode字符串处理一直是一个容易让人迷惑的问题。许多Python爱好者经常因为搞不清Unicode、UTF-8还
- 问:如何在SQL Enterprise Manager version 6.5下操作SQL Server 6.0的服务器?答:在使用SQL
- 本文实例讲述了python使用Flask框架获取用户IP地址的方法。分享给大家供大家参考。具体如下:下面的代码包含了html页面和pytho
- Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的。相比于Angular.js,Vue.js提
- create proc addcolumn@tablename varchar(30), --表名@colname varchar(30),
- 话说这能难倒我吗?赶赶单单~来 ,开搞!一、准备工作用到的软件准备一哈Python 3.8Pycharm 2021.2知识点Python基础
- frame标签有frameset、frame、iframe三种,frameset和其它普通标签没有区别,不会影响正常定位,而frame与if
- Python算术运算符以下假设变量a为10,变量b为20:运算符描述实例+加 - 两个对象相加a + b 输出结果 30-减 - 得到负数或
- 我在按照 Byte of python一步步的学习Python, 在学到‘解决方案'的时候,原文的实例 “backup_ver1.p
- function getHTTPRequest() { var xhr = false; if (window.XMLHttpRequest
- PHP中主要用strtr()和str_repalce()这两个函数替换字符串和数组,但你们都知道他们这两个函数的区别和用法吗?有不少文章在说
- 其效果图如下:使用说明 需要使用jQuery库文件和formValidation库文件[下载实例代码] http://jquery.com/
- Win7安装mysql的具体过程,我的版本是5.5.21 以下是我的安装步骤:1、首先单击MySQL5.5.21的安装文件,出现该数据库的安
- 目录楔子使用方法创建一个文件创建一个目录重命名将文件1.txt移动到子目录test_child, 所以此时会伴随一个创建、一个删除以及一个修
- 登陆流程图:代码实现:#-*- coding=utf-8 -*-import os,sys,getpass'''us
- SQLite是一种嵌入式数据库,它的数据库就是一个文件。由于SQLite本身是C写的,而且体积很小,所以,经常被集成到各种应用程序中,甚至在
- %matplotlib inline是一个魔法函数(Magic Functions)。官方给出的定义是:IPython有一组预先定义好的所谓
- 这篇文章主要介绍了python 上下文管理器原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友
- 应用背景背景:“由于工作需要可能需要对一些文件进行重命名的处理,但是可能操作起来比较烦,点错了就命名失败或者没带鼠标,用控制板操作起来比较麻
- 一、前言刚开始学Python的小伙伴可能会觉得每次写Python打开Cmd或者idle有点烦躁,没有代码补全也没有格式提示等。所以直接上手了