在这篇文章中,我们将看到如何使用NodeJS将文件或图像上传到服务器。在这里,我们将在开发过程中使用带有以下NPM包的VisualStudio。expressmulterbody-parser我们将简要说明这些包的使用。众所周知,NodeJS是一个基于ChromeV8JavaScript引擎的运行环境,用于服务器端和Web应用程序。而且是开源的,支持跨平台。NodeJS应用程序是用纯JavaScript编写的。如果您是NodeJS的新手,那么我强烈建议您阅读我之前关于NodeJS的文章。下载源代码使用NodeJS后台上传文件或图片到服务器几年前,如果你需要将任何文件或图片上传到服务器,你必须完全依赖服务器端语言,如C#和PHP。JS革命之后,一切都变了。今天我将向您展示如何使用NodeJS将文件上传到服务器,而无需编写任何服务器端代码。希望你会喜欢。创建一个空白的NodeJSWeb应用程序在package.json中设置依赖项在我们开始之前,我们首先需要设置我们的依赖项。为此,打开package.json文件并粘贴代码。{"name":"node_js_file_upload","version":"0.0.1","description":"Node_JS_File_Upload","main":"server.js","dependencies":{"body-parser":"^1.15.2","express":"^4.14.0","multer":"^1.2.0"},"author":{"name":"Sibeesh"}}现在,运行NPM安装命令如图所示。运行npminstall命令后,可以看到解决方案中已经安装了依赖。现在我们可以理解这些依赖关系是干什么用的了。express根据Express团队的说法,Express是一个最小且灵活的Node.jsWeb应用程序框架,它为Web和移动应用程序提供了一组强大的功能。Express提供了一层薄薄的基本Web应用程序功能,而不会掩盖您熟悉和喜爱的Node.js功能。您可以随时在此处了解有关快递包裹的更多信息。multerMulter是一个处理multipart/form-data的node.js中间件,主要用于上传文件。它建立在busboy的基础上以提高效率。单击此处阅读有关multer包的更多信息。依赖项入门您可以按如下方式创建依赖项实例。varExpress=require('express');varmulter=require('multer');varbodyParser=require('body-parser');varapp=Express();app.use(bodyParser.json());然后,创建描述文件/图像应保存在何处以及如何保存的存储。varStorage=multer.diskStorage({destination:function(req,file,callback){callback(null,"./Images");},filename:function(req,file,callback){callback(null,file.fieldname+"_"+Date.now()+"_"+file.originalname);}});每个文件包含以下信息:fieldname:表单中指定的字段名originalname:用户电脑上的文件名encoding:文件的编码类型mimetype:文件的MIME类型size:文件的大小inbytesdestination:保存文件的文件夹filename:目标文件的名称path:上传文件的完整路径buffer:现在整个文件的Buffer请按如下方式创建multer对象。varupload=multer({storage:Storage}).array("imgUploader",3);//这里的字段名和最大计数multer接受我们在上一步中创建的存储作为参数。函数array(fieldname[,maxCount])接受一个文件数组,所有文件都具有名称fieldname。现在我们应该写post和get请求:app.get("/",function(req,res){res.sendFile(__dirname+"/index.html");});app.post("/api/Upload",function(req,res){upload(req,res,function(err){if(err){returnres.end("出错了!");}returnres.end("文件上传成功!.");});});其中/api/Upload是我们将在稍后创建的HTML页面上设置的操作的名称。***,但同样重要的是,我们需要确保应用程序正在侦听我们的特定端口,在本例中为端口2000。app.listen(2000,function(a){console.log("Listeningtoport2000");});创建HTML页面并设置上传您可以使用jquery-3.1.1.min.js和jquery.form.min.js参考创建如下所示的页面。
