nodejs07

github

技术栈

  1. github上,awesome + 技术栈名词

起步脚手架

  1. github上,vue starter kit 起步项目

文件上传

没有文件上传的post表单提交,值依然用键值对的方式提交

formidable

原生的post方式提交,监听data和end事件

  1. 第三方包-----formidable,处理表单数据和文件上传
  2. 使用
var form = new formidable.IncomingForm();
form.uploadDir = "./img";
form.keepExtensions = true;
//err 是错误对象
// fields 是键值对
// files 是关于上传文件的信息
form.parse(req, function(err, fields, files) {})
  1. files----还有更多属性,可以输出查看
{
  "filename":
  {
    mtime:"2017-04-08T11:17:11.389Z",
    name:"IMG_8217.JPG",
    path:"img\upload_a799c0a40b82a9b973e48813e07695a6.JPG",
    size:179168,
    type:"image/jpeg"
  }
}

核心库path

  1. path.join()用于连接路径,Unix系统是”/“,Windows系统是”\“。
  2. path.resolve()用于将相对路径转为绝对路径

url

  1. url.parse可以将一个url解析成一个对象
  2. 第二个参数为true,代表将对象中query解析成一个对象
  3. url.parse(url,true)

formData 原生文件上传

XMLHttpRequest Level 2添加了一个新的接口FormData

//该元素有一个属性,files,存放了上传的文件
var fileEle = docuement.getElement("fileEle");
//自己拼凑
var formDate = new FormData();
formData.append("username","yf");
formData.append("filename",fileEle.files[0]);
//使用表单
var formEle = docuement.getElement("formEle");
var formDate = new FormData(formEle);
//使用jquery的ajax需要特别设置
var opt = {
  processData:false,//jquery会默认处理你的数据
  contentType:false//jquery发送类型为 x-www等
}
$.ajax({
  data: formdata,
  // 同时设置上边的两项
})

你可能感兴趣的:(nodejs07)