node + multer 实现文件上传过程

下面是关于使用 node + multer 实现文件上传的攻略:

1. 安装和引入 multer

Multer 是一个处理文件上传的 node.js 中间件。首先需要在命令行中使用 npm 安装 multer 包:

npm install multer --save

安装完成后,在 Node.js 脚本中引入 multer:

const multer = require('multer');

2. 配置 multer

在使用 multer 之前,需要先配置 multer。主要需要定义上传文件的存储位置和文件名的生成方式。常规配置如下:

const storage = multer.diskStorage({
  // 存储路径,此处为项目根目录下的 uploads 文件夹
  destination: function (req, file, cb) {
    cb(null, path.join(__dirname, 'uploads'))
  },
  // 文件名格式
  filename: function (req, file, cb) {
    cb(null, Date.now() + '-' + file.originalname)
  }
});

3. 使用 multer

上传文件的 HTML 表单如下:

<form action="/upload" method="post" enctype="multipart/form-data">
  <input type="file" name="file">
  <button type="submit">上传文件</button>
</form>

在后端路由中使用 multer 处理上传的文件:

const upload = multer({ storage: storage })

app.post('/upload', upload.single('file'), function (req, res, next) {
  // req.file 是 `file` 文件的信息
  console.log(req.file)
  res.send('上传成功!')
})

其中,upload.single('file') 表示上传单个文件,文件的 name 属性为 file。如果要上传多个文件,则可以使用 upload.array('files') 或者 upload.fields([{ name: 'file1' }, { name: 'file2' }])

示例1:上传单个文件

HTML 表单如下:

<form action="/upload" method="post" enctype="multipart/form-data">
  <input type="file" name="file">
  <button type="submit">上传文件</button>
</form>

后端路由:

const upload = multer({ storage: storage })

app.post('/upload', upload.single('file'), function (req, res, next) {
  // req.file 是 `file` 文件的信息
  console.log(req.file)
  res.send('上传成功!')
})

示例2:上传多个文件

HTML 表单如下:

<form action="/upload" method="post" enctype="multipart/form-data">
  <input type="file" name="files" multiple>
  <button type="submit">上传文件</button>
</form>

后端路由:

const upload = multer({ storage: storage })

app.post('/upload', upload.array('files'), function (req, res, next) {
  // req.files 是 `files` 文件组的信息
  console.log(req.files)
  res.send('上传成功!')
})

以上,就是使用 node + multer 实现文件上传过程的完整攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:node + multer 实现文件上传过程 - Python技术站

(0)
上一篇 2023年6月8日
下一篇 2023年6月8日

相关文章

  • win系统下nodejs环境安装配置

    以下是“win系统下nodejs环境安装配置”的完整攻略: 1. 下载安装Node.js 官网提供了Node.js的Windows安装程序,可以在https://nodejs.org/zh-cn/download/ 下载。 下载后打开安装程序,一路按照提示选择需要的选项即可。一般来说,选择默认选项即可,不需要进行自定义设置。 安装完成后,可以在命令行中运行 …

    node js 2023年6月8日
    00
  • nvm版本导致npm install报错Unexpected token ‘.’的解决办法

    当我们在使用 npm 安装依赖时,如果出现类似于 “Unexpected token”、”SyntaxError” 等错误提示,可能是因为我们的环境版本与依赖包的版本不兼容造成的。 当遇到这种情况时,需要检查我们使用的 Node.js 版本,以及当前的依赖包是否与该版本兼容。如果不兼容,需要升级或降级 Node.js 的版本。而使用 nvm 管理 Node.…

    node js 2023年6月8日
    00
  • 利用Node.js制作爬取大众点评的爬虫

    下面是利用Node.js制作爬取大众点评的爬虫的攻略: 一、背景 大众点评是以点评为核心,覆盖餐饮、休闲娱乐、酒店旅游等多个领域的一家消费场景服务平台。通过大众点评平台,我们可以获取各个领域的用户评价和商户信息。因此,对于大众点评平台的数据采集非常有意义。 二、技术栈 在制作爬取大众点评的爬虫时,我们需要使用以下技术栈: Node.js:利用Node.js的…

    node js 2023年6月8日
    00
  • 详解React Angular Vue三大前端技术

    详解React Angular Vue三大前端技术 React、Angular和Vue是目前前端技术中最受欢迎的三种框架。在这篇攻略中,我们将会详细讲解这三种框架的特点、优缺点以及如何选择适合自己的框架。 React React是由Facebook开发并维护的一个JavaScript库,用于构建大型、高性能的用户界面。它有以下特点: 采用Virtual DO…

    node js 2023年6月8日
    00
  • node.js学习之事件模块Events的使用示例

    Node.js学习之事件模块Events的使用示例 Node.js中的事件驱动模型基本上是所有I/O操作的基础。EventEmitter是Node.js的核心模块之一,它提供了事件处理的接口,可以用于自定义事件,或者处理Node.js内部提供的事件。 事件模块Events的基础使用 继承EventEmitter 我们可以用ES6的方式继承Node.js提供的…

    node js 2023年6月8日
    00
  • 使用upstart把nodejs应用封装为系统服务实例

    要把一个Node.js应用程序封装为系统服务,可以使用 upstart 工具。 upstart 是 Ubuntu 的默认系统初始化工具之一,负责自动启动、停止和管理系统服务。upstart 将一个应用程序实例化为一个守护进程(也叫做服务),它会自动执行并运行在后台。 下面是使用upstart把nodejs应用封装为系统服务的攻略: 步骤1 – 编写Nodej…

    node js 2023年6月8日
    00
  • NodeJs+MySQL实现注册登录功能

    总体架构 NodeJs是一种基于事件驱动、非阻塞I/O模型的JavaScript后端运行环境,它提供了众多的系统模块和第三方模块,以及一个强大的包管理工具npm。MySQL是一种流行的关系型数据库管理系统,提供了完善的数据库设计和管理工具,以及一套丰富的SQL语言和API。 注册登录功能的实现,主要涉及以下几个环节: 用户信息的采集和存储; 用户名和密码的加…

    node js 2023年6月8日
    00
  • 又拍云 Node.js 实现文件上传、删除功能

    以下是“又拍云 Node.js 实现文件上传、删除功能”的完整攻略: 准备工作 首先,你需要拥有一个又拍云的账号,并开通相应的存储服务。然后,在本地电脑上安装Node.js,使用npm包管理器安装以下的依赖库: npm install upyun npm install formidable 其中,upyun是用于操作又拍云存储服务的SDK,formidab…

    node js 2023年6月8日
    00
合作推广
合作推广
分享本页
返回顶部