千家信息网

node.js怎么使用express-fileupload中间件实现文件上传

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容介绍了"node.js怎么使用express-fileupload中间件实现文件上传"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情
千家信息网最后更新 2026年11月01日node.js怎么使用express-fileupload中间件实现文件上传

本篇内容介绍了"node.js怎么使用express-fileupload中间件实现文件上传"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

本文使用express作为服务端,使用express-fileupload库提供的中间件函数来接受从客户端传来的图片,并将图片作为文件存储在服务端。客户端使用create-react-app框架,bootstrap UI,axios发送http请求和提供进度条当前进度的值,上传成功后,根据图片在服务端上的位置,并显示图片。

初始化项目

mkdir react-file-upload    // 创建项目根目录cd react-file-uploadnpm init -y                // 初始化 npm 创建 package.json

安装一些必要依赖(dependencies)

npm i express express-fileuploadnpm i -D nodemon concurrently    // 可以并行同时运行客户端和服务端(在本机进行测试)

更改 react-file-upload/package.json 中的 scripts 脚本

{  "main": "server.js",  "script" : {    "start": "node server.js",     "server": "nodemon server.js",    "client": "npm start --prefix client",      "dev": " concurrently "npm run server" "npm run client" "  }}
  • main 改为 server.js

  • start 使用 node 启动 express

  • server 使用 nodemon 启动 express ,nodemon会监视server.js文件是否有变动 (ctrl+S) 若有变动 重新启动服务器 而node启动则不会,需要手动重启服务(ctrl+C 且改动文件后重新运行 node server.js)

  • client 启动客户端 随后我们会创建 client 文件夹 编写 react 组件

  • dev 使用 concurrently 同时启动服务端与客户端

编写服务器

下面来编写 server.js 文件

const express = require("express");const fileUpload = require("express-fileupload");const app = express();// 使用 express-fileupload 中间件app.use( fileUpload() );// 处理由 /upload 页面发送过来的post请求app.post("/upload", (req, res) => {  // req 中的 files 属性由 express-fileupload 中间件添加!? (疑问暂存)  // 判断 files 属性是否存在 和 是否有文件传来 若无返回400  if(req.files === null){    return res.status(400).json({msg:"no file uploaded"});  }  // 否则 获取文件  // file 由后文中 formData.append("file", file) 的第一个参数定义 可自定义为其他名称  const file = req.files.file;  // 移动文件到第一参数指定位置 若有错误 返回500  file.mv(`${__dirname}/client/public/uploads/${file.name}`, err => {    if(err){      console.error(err);      return res.status(500).send(err);    }    // 若无错误 返回一个 json     // 我们计划上传文件后 根据文件在服务器上的路径 显示上传后的文件    // 随后我们会在 react 组件中实现    // 在客户端中的 public 文件夹下创建 uploads 文件夹 用于保存上传的文件    res.json({fileName: file.name, filePath: `uploads/${file.name}`});  });});app.listen(5000,() => {console.log("Server started...")});

现在运行一遍 server.js 保证无错误 会在控制台看到 Server started...

npm run server

初始化客户端

然后我们创建客户端 我们使用 create-react-app 脚手架初始化项目

npx create-react-app client

初始化完成后 我们可以先选择性的删除一些不必要的文件

  • serviceWorker.js

  • logo.svg

  • index.css // 之后我们会用link标签从cdn引入bootstrap的

  • App.test.js // 只是个小demo

我们删除 src / index.js 文件中引入的 index.css,在 public 文件夹中的 index.html 模板文件中,直接引入bootstrap 的 css 和 js

                                  React File Uploader            

编写组件

我们总共需要编写3各组件,分别为

  • FileUpload.js:用form标签的onSubmit和axios发送上传请求

  • Message.js:显示信息 上传成功 服务器错误 或 没有选择文件

  • Progress.js:用axios的onUploadProgress和bootstrap显示上传进度条

FileUpload

import React, { useState } from "react"import axios from "axios"import Message from "./Message"import Progress from "./Progress"const FileUpload = () => {  return (    
{message ? : null}
{ uploadedFile ?

{uploadedFile.name}

:

nothing uploaded yet...

}
)}export default FileUpload

Message.js

import React from "react"import PropTypes from "prop-types"const Message = ({msg}) => {  console.log("her")  return (    
{msg}
)}Message.propTypes = { msg: PropTypes.string.isRequired,}export default Message

Progress.js

import React from "react"import PropTypes from "prop-types"const Progress = ({percentage}) => {  return (    
{percentage}%
)}Progress.propTypes = { percentage: PropTypes.number.isRequired,}export default Progress

测试

目前为止,全部的功能组件都已完成。

npm run dev

"node.js怎么使用express-fileupload中间件实现文件上传"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

文件 服务 客户 客户端 中间件 组件 图片 文件夹 服务器 错误 进度 项目 运行 成功 位置 内容 参数 同时 属性 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 科技服务与互联网 丰台科技园 互联网 碳银互联网科技有限公司 上海万想互联网科技 互联网科技视频素材 互联网 科技服务平台 科技伦理 互联网公司 互联网科技素材视频竖屏 衡水科技产业互联网平台 辽宁互联网新科技 注册互联网科技公司经营范围大全 互联网科技和信息 互联网科技人工智能实验室 玉溪新华互联网科技好不好 科技赋能视角下互联网保险发展 城市宝互联网科技有限公司 珠海东科互联网科技有限公司 科技互联网专业工作会议发言稿 互联网科技创业计划的风险分析 高科技和互联网的现代国家 互联网络科技 广州淘业互联网络科技 广州大一互联网络科技有限公司 金融科技还是互联网 广州凡科互联网科技 互联网科技logo设计 深圳互联网科技怎么样 未来五年的互联网科技 全球科技与互联网公司市值变化 西安左小互联网科技有限公司
0