一、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. Ubuntu+docker+jenkins安装详细指南

    最近项目上开始实行自动化测试,避免不了与jenkins等持续集成工具打交道,今天就给大家分享一下有关jenkins的简单安装和使用 1,准备环境 (1)ubuntu系统 (2)docker (3)je ...

  2. 基于操作系统的Linux网络参数的配置

    一.实验目的 1.掌握Linux下网络参数的查看方法并理解网络参数的含义. 2.掌握Linux下网络参数的配置 二.实验内容 1.查看当前网络配置的参数. 2.在Linux主机中将网络参数按以下要求设 ...

  3. python学习笔记之zipfile模块

    为什么学习: 在做自动化测试平台的apk上传功能部分时候,涉及到apk上传后提取apk的icon图标,通过aapt解析apk,获取对应icon在apk中的地址,通过python的zipfile模块来解 ...

  4. 2.html5新布局元素

    1.html5的优点: ①对人友好,更加语义化,更直观,增加了代码的可读性. ②对计算机友好,浏览器更容易解析,搜索引擎更容易抓取文档内容. ③代码更加的简洁. 2.新增的布局标签: Article: ...

  5. Jquery toastr提示框

    toastr是一个基于JQuery的消息提示插件; 1. 下载toastr和jquery https://jquery.com/download/ https://codeseven.github.i ...

  6. 揭秘C# SQLite的从安装到使用

    SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了 ...

  7. PID算法的理解及场景模拟

    增量式PID算法的简化版之后的公式: △u(t)=Ae(t)-Be(t-1)+Ce(t-2) △u:PID控制器输出的下一时刻的调整量 e(t):PID控制器在当前时刻的状态变化量-给定值 e(t-1 ...

  8. mpvue 签字组件

    <template> <div > <canvas class='firstCanvas' canvas-id="firstCanvas" @touc ...

  9. 可能是把 ZooKeeper 概念讲的最清楚的一篇文章

    转载自:https://github.com/Snailclimb/JavaGuide/blob/master/%E4%B8%BB%E6%B5%81%E6%A1%86%E6%9E%B6/ZooKeep ...

  10. sql 外键 on update cascade 和 on delete cascade 作用区别?

    这是数据库外键定义的一个可选项,用来设置当主键表中的被参考列的数据发生变化时,外键表中响应字段的变换规则的.update 则是主键表中被参考字段的值更新,delete是指在主键表中删除一条记录:on ...