一、FormData

  FormData是ajax2.0里面添加的新特性。

  FormData的主要用途有两个:

  (1).将form表单元素的name与value进行组合,实现表单数据的序列化,从而减少表单元素的拼接,提高工作效率。

  (2).异步上传文件

  formdata使用方法详解=> https://www.jianshu.com/p/e984c3619019

1.前端代码

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<form action="http://localhost:8520/" method="POST" id="myform">
账号:<input type="text" placeholder="请输入账号" name="username"/><br>
密码:<input type="password" placeholder="请输入密码" name="password" /><br>
文件:<input type="file" name="myfile" /><br>
<input type="submit" value="提交" />
</form>
</body>
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-2.1.4.min.js"></script>
<script>
$("#myform").on("submit",function(){
let formdata = new FormData(this); //FormData是ajax2.0里面添加的新特性。this指的是$("#myform")
$.ajax({
url:this.action,
type:this.method,
data:formdata, //jquery ajax的data上传时会自动转换成它定义的格式,因而直接输入formdata会报错
processData: false, //告诉jquery不要转换formdata
contentType: false //告诉jquery不要转换contentType
}).then(res=>{}); return false; //阻止用表单的方式提交
})
</script> </html>

二、Node

  前提条件:安装好node以及npm。

  node的安装:进入官网进行傻瓜式操作=>  https://nodejs.org/en/

1.首先打开cmd,进入本次项目目录。

2.使用IDE打开该项目,创建node_server.js(***.js),配置服务器。

  (1). 配置localhost,引入系统模块http,端口号可自定义。通常req用作传递给函数和方法的参数,而res则是函数的执行结果或者回调信息。

  (2).键入node node_server.js(***.js)启动localhost:8520,ctrl+c关闭localhost:8520。

3.安装package.json——npm的工程文件。(npm init -y)

  npm init -y 项目初始化,-y即全部默认为yes。可见项目目录下已有了package.json该文件。

4.安装multiparty插件。(npm i multiparty -D)

  当package.json的devDependencies开发依赖多了个multiparty即为安装成功。

5.解析并打印FormData数据

  在node_server.js(***.js)文件里引入multiparty插件。

  引入之后实例化该插件,并指定一个目录存放文件upload。

const http = require('http');   //引入系统模块
const multiparty = require('multiparty'); //引入multiparty插件 http.createServer( (req,res)=>{
//通常req用作传递给函数和方法的参数,而res则是函数的执行结果或者回调信息。
let form = new multiparty.Form({uploadDir:'./upload/'}); //实例化该插件
form.parse(req); //利用parse()方法来解析FormData数据。 form.on('field',(name,value)=>{ //field可获取普通数据信息。
console.log('普通数据信息:',name,value);
});
form.on('file',(name,filevalue)=>{ //file主要是获取文件数据信息。
console.log('文件信息:',name,filevalue);
});
form.on('close',()=>{ //close事件会在请求结束之后触发。
console.log("end");
});
}).listen(,()=>{
console.log("hello comedy");
});

最终效果如下图,可见upload该目录下多出了一张图片,该图片即为所上传的timg.jpg图片。


end

FormData交互以及Node multiparty插件的使用的更多相关文章

  1. node安装插件方法

    node安装插件方法有几种,这里列出常用的两种方法: 方法1: 进入要安装插件的目录,直接用 npm 软件安装包安装,如(安装express): cd /project npm install -g ...

  2. Fundebug后端Node.js插件更新至0.2.0,支持监控Express慢请求

    摘要: 性能问题也是BUG,也需要监控. Fundebug后端Node.js异常监控服务 Fundebug是专业的应用异常监控平台,我们Node.js插件fundebug-nodejs可以提供全方位的 ...

  3. 使用node的插件UglifyJs来合并和压缩文件

    code: var fs = require('fs'); var jsp = require("./UglifyJS-master/uglify-js").parser; var ...

  4. node常用插件使用

    1.nodemon 用于热更新,随时监控文件的变化 安装npm i -g nodemon 使用nodemon index.js 2.nvm nvm用于nodejs版本管理,我们在开发过程中,不同的项目 ...

  5. subline上装node.js插件

    此方法绝对可行,我已试过:http://www.mamicode.com/info-detail-84030.html

  6. Node.js C/C++ 插件

    插件 Addons 是动态链接的共享对象.他提供了 C/C++ 类库能力.这些API比较复杂,他包以下几个类库: V8 JavaScript, C++ 类库.用来和 JavaScript 交互,比如创 ...

  7. 如何安装node.js支持插件

    在eclipse插件中,node.js插件中比较知名的是nodeclipse. 从HBuilder6.3起,工具-插件安装,可直接选择nodeclipse插件安装.安装完毕后重启HBuilder新建n ...

  8. Js与flash交互:在html页面中用js与MyReport插件交互

    Html页面与flash的加载 如下图,flash是html页面的一个插件节点. js与flash进行交互,首先要处理好html页面和swf的加载问题. Swf调用外部js方法,要确保js方法已存在, ...

  9. node c++多线程插件 第二天 c++指针

    虽然取名叫node多线程插件,但是目前还是在学习c++的情况. 今天谈一谈c++指针. c++指针就像是c#中的引用变量,例如一个Person类的实例zs{Name="张三",Ag ...

随机推荐

  1. Spring 梳理-webApplicationContext 与servletContext

    1.WebApplicationContext的研究 ApplicationContext是spring的核心,Context通常解释为上下文环境,用“容器”来表述更容易理解一些,Applicatio ...

  2. Spring MVC-从零开始-分拆applicationContext. xrnl

    1.目录结构 2.web.xml配置 <?xml version="1.0" encoding="ISO-8859-1"?> <web-app ...

  3. 如何解决myeclipse2014突然无法打开的问题

    今天突然发现我的myeclipse2014打开不了,昨晚还好好的,上网找了一下没有找到解决方法,于是新建一个工作区间Workspace Test,再打开File->Switch WorkSpac ...

  4. Mybatis的xml文件对大于号小于号的特殊处理!

    当我们需要通过xml格式处理sql语句时,经常会用到< ,<=,>,>=等符号,但是很容易引起xml格式的错误,这样会导致后台将xml字符串转换为xml文档时报错,从而导致程序 ...

  5. Nginx负载均衡配置实例

    面对高并发的问题,企业往往会从两个方面来解决.其一,从硬件上面,提升硬件的配置,增加服务器的性能:另外,就是从软件上,将数据库和WEB服务器分离,使数据库和WEB服务器都能够充分发挥各自的性能,并且二 ...

  6. kotlin -- 可见性修饰符

    puiblic Kotlin的可见修饰符与Java类似,但是默认可见性不同,Java默认包私有,kotlin默认public ### internal internal 只在模块内部可见.一个模块就是 ...

  7. Centos6 日常使用小结

    网络配置目录 1./etc/sysconfig/network-script/ifcfg-eth0 2.netstat -rn Kernel IP routing table Destination ...

  8. Eclipse的Debug各种视图介绍(二)

    本文链接:https://blog.csdn.net/u011781521/article/details/55000066    http://blog.csdn.net/u010075335/ar ...

  9. 【主动学习】Variational Adversarial Active Learning

    本文记录了博主阅读ICCV2019一篇关于主动学习论文的笔记,第一篇博客,以后持续更新哈哈 论文题目:<Variational AdVersarial Active Learning> 原 ...

  10. ASP.NET Web API 2系列(二):灵活多样的路由配置

    1. 导言 路由系统是请求消息进入ASP.NET Web API消息处理管道的第一道屏障,其根本目的在于利用注册的路由对请求的URL进行解析以确定目标HTTPController和Action的名称, ...