busboy-bodyparser修改了我的请求,导致GridFsStorage无法将请求数据注册到mongodb。
创始人
2024-12-28 02:31:08
0

使用multer而不是busboy-bodyparser来解析请求体。multer也支持将文件上传到GridFS,与GridFsStorage兼容。

示例代码如下:

const multer = require('multer'); const GridFsStorage = require('multer-gridfs-storage'); const mongoose = require('mongoose'); const path = require('path');

// 创建Gridfs存储对象 const storage = new GridFsStorage({ url: 'mongodb://localhost:27017/myDatabase', file: (req, file) => { var filename = file.originalname return { filename: filename, }; } });

//创建multer解析器 const upload = multer({ storage: storage, limits: { fileSize: 1000000 }, fileFilter: function (req, file, cb) { checkFileType(file, cb); } }).single('myUploadField');

function checkFileType(file, cb) { // 允许上传的文件扩展名 const filetypes = /jpeg|jpg|png|gif/; // 检查扩展名 const extname = filetypes.test(path.extname(file.originalname).toLowerCase()); // 检查后缀名 const mimetype = filetypes.test(file.mimetype); if (mimetype && extname) { return cb(null, true); } else { cb('错误:只允许上传图片!'); } }

//上传文件示例 app.post("/upload", function (req, res) { upload(req, res, function (err) { if (err) { res.status(400).send(err); } else { // 文件已上传,返回成功信息 res.send("上传成功!"); } }); });

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...