当前位置: 首页 > news >正文

Express + MongoDB 实现文件上传

使用 `multer` 中间件来处理文件上传,同时将文件的元数据存储到 MongoDB 中。

一、安装依赖

npm install multer

二、核心代码

// 定义文件模型const fileSchema = new mongoose.Schema({originalname: String,mimetype: String,size: Number,path: String,});const File = mongoose.model("File", fileSchema);// 配置 multerconst storage = multer.diskStorage({destination: function (req, file, cb) {cb(null, "uploads/");},filename: function (req, file, cb) {cb(null, Date.now() + path.extname(file.originalname));},});const upload = multer({ storage: storage });// 创建上传目录const fs = require("fs");if (!fs.existsSync("uploads")) {fs.mkdirSync("uploads");}// 处理文件上传app.post("/upload", upload.single("file"), async (req, res) => {try {const { originalname, mimetype, size, path } = req.file;const newFile = new File({originalname,mimetype,size,path,});await newFile.save();res.status(200).json({ message: "文件上传成功", file: newFile });} catch (error) {res.status(500).json({ message: "文件上传失败", error: error.message });}});

http://www.lryc.cn/news/544390.html

相关文章:

  • 计算机毕业设计SpringBoot+Vue.js作业管理系统(源码+文档+PPT+讲解)
  • Odoo免费开源CRM技术实战:从商机线索关联转化为售后工单的应用
  • 2025年如何实现安卓、iOS、鸿蒙跨平台开发
  • 萌新学 Python 之 os 模块
  • IPoIB源码深度解析:如何基于TCP/IP协议栈实现高性能InfiniBand通信
  • 本地部署阿里万象2.1文生视频模型(Wan2.1-T2V)完全指南
  • information_schema.processlist 表详解
  • P8623 [蓝桥杯 2015 省 B] 移动距离
  • 2025年Linux主力系统选择指南:基于最新生态的深度解析(附2025年发行版对比速查表)
  • [密码学实战]Java实现国密(SM2)密钥协商详解:原理、代码与实践
  • 015--基于STM32F103ZET6的智能风扇设计
  • 基于YOLO11深度学习的遥感视角农田检测与分割系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割、人工智能
  • RBF神经网络+NSGAII多目标优化算法,工艺参数优化、工程设计优化(Matlab)
  • Zookeeper(79)如何进行Zookeeper的监控?
  • 运动想象 (MI) 分类学习系列 (17) : CCSM-FT
  • start DL from stratch (2)!!!
  • 【深入浅出:Core-JS Legacy 的降级兼容指南】
  • 通义灵码插件安装入门教学 - IDEA(安装篇)
  • STM32之时钟树
  • Unity插件-Mirror使用方法(一)Mirror介绍
  • HVAC 设计:使用 Ansys Discovery 探索更好的设计
  • ChatGPT 提示词框架
  • 004-利用Docker安装Mysql
  • Dify使用和入门
  • 高效管理 React 状态和交互:我的自定义 Hooks 实践
  • ESP 32控制无刷电机2
  • 揭开人工智能中 Tokens 的神秘面纱
  • 萌新学 Python 之 random 函数
  • 2-2linux系统IO
  • 周边游平台设计与实现(代码+数据库+LW)