node表单提交POST提交
时间:2022-06-08
本文章向大家介绍node表单提交POST提交,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前几天给大家介绍了使用node的提交(get)获取到表单提交的内容,get提交的参数查询部分(query)可以获得到,由于get提交的内容在url显示,而post提交处理机制,为了保障安全性不显示在url中,下面案例介绍下post提交案例!
首先看一下静态页面文件(info.html)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<form action="dopost" method="post" enctype="multipart/form-data">
<p>
姓名 : <input type="text" name="name">
</p>
<p>
性别 :
<input type="radio" name="sex" value="男">男
<input type="radio" name="sex" value="女">女
</p>
<p>
爱好:
<input type="checkbox" name="hobby" value="睡觉" />睡觉
<input type="checkbox" name="hobby" value="吃饭" />吃饭
<input type="checkbox" name="hobby" value="足球" />足球
</p>
<p>
图片:
<input type="file" name="tupian" />
</p>
<p>
<input type="submit" />
</p>
</form>
</body>
</html>
看一下控制提交的node代码(app.js)
const http=require('http');
//查询模块
const querystring=require("querystring");
const server=http.createServer(function(req,res){
//访问的url且类型是post请求 toLowerCase转小写(保持一致)
if(req.url=="/info" && req.method.toLowerCase()=="post"){
//alldata传输的整个完整数据
var alldata="";
//下面是post请求接收的一个公式
// node为了追求极致,它是一个小段一个小段接收的。
//接受了一小段,可能就给别人去服务了。防止一个过大的表单阻塞了整个进程
req.addListener("data",function(chunk){
//每次传入一段chunk(数据,一次无法传输完毕,就服务另外的请求进行调度)
alldata+=chunk;
})
req.addListener("end",function(){
//全服接收完毕,输出完整的数据
var alldatas= querystring.parse(alldata);
console.log(alldatas);
//请求对象中当数据
console.log(alldatas.name+"n"+alldatas.sex)
res.end("200, success!");
})
}
res.end('success')
})
server.listen(80,"127.0.0.1")
上述代码有点乱?不要着急,一点点解析出来就简单明了!
判断用户的url,并且提交方式是get
if(req.url=="/info" && req.method.toLowerCase()=="post")
下面是post提交的小公式
req.addListener("data",function(chunk){
//每次传入一段chunk(数据,一次无法传输完毕,就服务另外的请求进行调度)
alldata+=chunk;
})
req.addListener("end",function(){
//全服接收完毕,输出完整的数据
var alldatas= querystring.parse(alldata);
console.log(alldatas);
//请求对象中当数据
console.log(alldatas.name+"n"+alldatas.sex)
res.end("200, success!");
})
首先,要监听addListener(nodejs独特方法,非js的),data参数固定,一个回调函数参数传入chunk,每次post请求数据就是chunk一次,然后将新的chunk进行重新自增到原来的alldata(用来保存post的数据);
请求完毕进行监听一次,data参数改为end,回调函数无需传入参数.输出完整的alldata就是请求完整的数据,这个数据我们还需要一个模块(querystring)进行转换,使用querystring.parse(alldata)将接受数据转为对象,输出数据搞定!
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP call_user_func和call_user_func_array函数的简单理解与应用分析
- PHP常用函数之获取汉字首字母功能示例
- 浅谈laravel-admin form中的数据,在提交后,保存前,获取并进行编辑
- tp5 实现列表数据根据状态排序
- mac pecl 安装php7.1扩展教程
- tp5.1 实现setInc字段自动加1
- Laravel 前端资源配置教程
- laravel框架语言包拓展实现方法分析
- PHP使用JpGraph绘制折线图操作示例【附源码下载】
- Laravel Eloquent分表方法并使用模型关联的实现
- 关于laravel模板中生成URL的几种模式总结
- Laravel基础-关于引入公共文件的两种方式
- Laravel框架Blade模板简介及模板继承用法分析
- 基于Laravel 多个中间件的执行顺序详解
- 关于laravel 日志写入失败问题汇总