关于节点。js使用表达框架进行文件上传,主要来自于最近对Settings-Sync插件做的研究。
目前的研究算是取得的比较好的进展。
Settings-Sync中通过快捷键上传文件,其实主要还是请求后端接口。
于是我便使用节点。js模拟一个服务,这个服务其实就相当于github api (Settings-Sync实际请求的接口,比如令牌验证,要点存储创建等都是来自github对应的api)。
话不多说,直接代码贴起讲解:
1。创建一个node . js项目(这里我以表达框架为例)
关于如何创建一个节点。js项目我就不详细说,通常通过npm init就可以创建一个节点。js项目了。
关于节点。js项目详细教程,可以参考该篇文章nodeJS入门——新建一个项目及代码详解
当然了,如果你是直接通过这篇文章操作,最先可能会报这个错误,错误信息如下:
“表达”不是内部或外部命令,也不是可运行的程序 之前或批处理文件。>解决方式很简单,并不是npm安装- g表达就可以的,在此之前还需执行npm安装- g express-generator
这条命令很好理解,你可以将其理解为你的表达框架生成器,以Java中Maven来说,通常ide就把Maven结构都弄好了,你只需在创建项目的时候,勾选Maven即可,它会自己将所有相关项目包括配置文件一起生成。
虽然说我将地址贴出来,但是我觉得还是实际操作一遍,这样对此有一个感性认识(初学编程的人或者是已经有编程经验的人,是绝对不能忽略这一点的)。
流程如下:
。使用表达命令创建表达项目
表达博客
效果图如下:
表达非常有人性化,已经告诉你怎么进入博客项目及其安装相关的库依赖和启动了,你只需按照它的这个步骤,一步一步来就行了
b。目录结构分析示意图如下所示:
-
<李> app.js:启动文件,也可以说是主文件入口。李>
<李>包。json -定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称,版本,许可证等元数据).npm安装命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。李>
<李> node_modules——存放package.json中安装的模块,当你在package.json添加依赖的模块并安装后,存放在这个文件夹下李>
<李>公共——存放图片,css, js等文件李>
<李>路线——存放路由文件李>
<李>视图——存放视图文件或者说模板文件李>
<李>本——存放可执行文件李>
2。使用表达框架进行文件上传
注意,目录结构如下所示(我主要是复用最近研究的mock-github-api):
。准备html文件
公共文件夹主要放置静态文件,如index . html
& lt; !DOCTYPE html> & lt; html lang=癳n”比; & lt; head> & lt;元charset=皍tf - 8”比; & lt; title>文件上传& lt;/title> & lt;/head> & lt; body> & lt; h4>文件上传:& lt;/h4> 选择一个文件上传:& lt; br/比; & lt;形式行动="/依据" method=" post " enctype=岸嗖糠?格式”比; & lt;输入类型="文件" name="内容"/比; & lt; br/比; & lt;输入类型="提交" value=" https://www.yisu.com/zixun/上传文件”/比; & lt;/form> & lt;/body> & lt;/html>
b。编写相关的js
像upload.js属于路由,通常放置在路线文件夹下
var fs=要求(fs); var=需要表达(表达); var乘=要求(“相乘”); var=路径要求(“路径”); var路由器=express.Router (); var上传=相乘({桌子:“upload_tmp/眪); 路由器。邮报》('/',upload.any()函数(下)要求,res, { console.log (req.files [0]);//上传的文件信息 var des_file="。/上传/? req.files [0] .originalname; fs。readFile (req.files [0]。路径,函数(呃,数据){ fs。writeFile (des_file、数据功能(err) { 如果(err) { 控制台。日志(错); 其他}{ 响应={ 信息:文件上传成功, 文件名:req.files [0] .originalname }; 控制台。日志(响应); res.end (JSON。stringify(响应)); } }); }); }); 模块。出口=路由器;node . js使用表达框架进行文件上传详解