手机版

node.js使用express框架详细上传文件

时间:2021-08-27 来源:互联网 编辑:宝哥软件园 浏览:

关于node.js使用express框架上传文件,主要来自于最近对Settings-Sync插件的研究。

目前的研究可以算是一个比较好的进展。

在设置-同步中,文件是通过快捷键上传的,但实际上主要是请求后端接口。

所以我用node.js模拟了一个服务,实际上相当于github api(Settings-Sync实际请求的接口,比如令牌验证和gist存储创建,都是来自GitHub API)。

话不多说,直接码贴解释:

1.创建一个node.js项目(这里我以express框架为例)

我不会详细说明如何创建node.js项目。通常,可以通过npm init创建node.js项目。有关node.js项目的详细教程,您可以参考文章nodeJS Introduction ——来创建一个新项目并详细解释代码。当然,如果直接通过本文操作,可能会先报错。错误消息如下:

“Express”不是内部或外部命令,也不是可运行的程序或批处理文件。解决方案很简单,对于npm install -g express来说是不够的。在此之前,需要执行npm install -g express-generator

这个命令很容易理解,你可以把它理解为你的express框架生成器。就Java中的maven而言,ide通常会完成maven结构。您只需要在创建项目时检查Maven,它会自己生成包括配置文件在内的所有相关项目。

虽然我说我会贴地址,但我觉得我其实应该再做一次,这样我才能对它有一个感性的认识(编程新手或者已经有编程经验的人永远不能忽视这一点)。

过程如下:

A.使用快速命令创建快速项目

快速博客

渲染如下:

Express非常用户友好,已经告诉你如何进入博客项目及其安装相关的库依赖和启动。你只需要一步一步地遵循它的步骤

B.目录结构分析示意图如下图:所示

app.js:——启动文件也可以说是主文件入口。package . js ——定义了该项目所需的各种模块和项目的配置信息(如名称、版本和许可证等元数据)。根据这个配置文件,npm install命令自动下载所需的模块,即配置项目所需的运行和开发环境。Node_modules——存储安装在package.json中的模块,将依赖模块添加到package.json并安装后,它存储在此文件夹中。public——存储图像、css、js和其他文件。routes——存储路由文件。视图——存储视图文件或模板文件。bin——存储可执行文件。2.使用express框架上传文件。

注意,目录结构如下(我主要重用最近研究的mock-github-api):

A.准备html文件

公共文件夹主要放置静态文件,如index.html

!doctype html lang=' en ' head metacarset=' utf-8 ' title file upload/title/head body H3 file upload:/H3选择要上传的文件: br/form action='/Gists ' method=' post ' enctype=' multipart/form-data ' input type=' file ' name=' content '/br/input type=' submit ' value=' upload file '/form/body/html b。写相关的js

像upload.js一样,它属于路由,通常放在routes文件夹下

var fs=require(' fs ');var express=require(' express ');var multer=require(' multer ');var path=require(' path ');var路由器=express。路由器();var upload=multer({ dest : ' upload _ tmp/' });router.post('/'、upload.any()、function(req、res、next){ console . log(req . files[0]);//上传的文件信息vardes _ file='。/upload/'req.files [0]。originalnamefs.readFile(req.files[0])。path,function (err,data) { fs.writeFile(des_file,data,function(err){ if(err){ console . log(err);}else{ response={ message: '文件上传成功',filename:req.files[0]。original name };console.log(响应);res.end(JSON.stringify(响应));} });});});module.exports=路由器;c .上传文件及其效果页面图:

上传成功显示图:

上传文件夹下会有相应的文件(也就是你刚通过页面上传的文件)

最后一个例子,有阿里巴巴云和腾讯云的图片存储。你可以做个参考。

源地址是:https://github.com/developers-youcong/mock-github-api

我希望能激励和帮助每个人

注意,可能的问题:

问题1:静态资源需要释放,否则无法访问。可以在index.js中补充这段代码来解决这个问题

app . use(express . static(path . join(_ _ dirname,' public '))问题2 :socket挂机

我通过移除var body parser=require(body-parser)解决了这个问题

错误消息:错误: {[错误:套接字挂起]代码:“econ reset”}

分析原因:由于某种原因,http目标地址在建立套接字连接时出错。错误解决方法:经过对比搜索,我发现这里的nodejs项目使用了中间件“body-parser”。如果它被移除,就不会有问题。还有其他原因,这里暂时没有遇到,就不多解释了。

版权声明:node.js使用express框架详细上传文件是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。