前言
在这一节中,将会初始化项目,并安装相关依赖模块,同时启动第一个服务。这是一切的开始,后面所做的一切都是在这个基础上添砖加瓦。
学习 Node.js 也有一段时间了,整个过程断断续续的,在学习过程中感觉内心还有点浮躁,所以就准备写一个 Node.js 的实战系列,让自己静下心来,同时这个过程也不断的巩固自己之前所学的知识,之后也方便自己进行知识回顾。
使用原生来写 POST 的处理, 比较复杂, 而且文件上传业务比较的难写, 所以肯定有人造好了相关的轮子, 也就是 Node.js 的第三方模块 formidable , 使用 formidable 当做中间件用来处理文件上传非常方便, 而且可以配合其他模块对文件进行相应的命名。
不过在对 formidable 学习过程中出现了一个问题, 就是上传文件时, form.parse() 回调函数中 files 对象是个空对象。 就排查了挺久, 然后就以为问题是出在服务器端的代码上, 百度上关于这个问题也是寥寥无几, 众说纷纭。 没想到最后是前台页面 form 表单的问题, 也就是在 <\form> 标签中我少写了一个 enctype 属性, 在使用包含文件上传控件的表单时,必须使用 enctype=”multipart/form-data” 也就是不对字符进行编码。
Update your browser to view this website correctly. Update my browser now