【发布时间】:2021-04-22 11:07:59
【问题描述】:
我正在尝试在 mongo db 中上传图片,但在邮递员中点击发送后显示“img”:null
我在前端使用颤振,所以我想制作一个休息 api 我能够上传单个图像但是当我尝试上传多个图像时它显示 “img”:空
我还创建了一个架构
我设置的地方
img:{
type: array,
default:"",
}
const express = require("express");
const router = express.Router();
const Profile = require("../models/profile.model");
const middleware = require("../middleware");
const multer = require("multer");
const path = require("path");
const storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, "./uploads");
},
filename: (req, file, cb) => {
cb(null, req.decoded.username + ".jpg");
},
});
const fileFilter = (req, file, cb) => {
if (file.mimetype == "image/jpeg" || file.mimetype == "image/png") {
cb(null, true);
} else {
cb(null, false);
}
};
const upload = multer({
storage: storage,
limits: {
fileSize: 1024 * 1024 * 6,
},
// fileFilter: fileFilter,
});
//adding and update profile image
router
.route("/add/image")
.patch(middleware.checkToken, upload.array("img",5), (req, res) => {
Profile.findOneAndUpdate(
{ username: req.decoded.username },
{
$set: {
img: req.files.path,
},
},
{ new: true },
(err, profile) => {
if (err) return res.status(500).send(err);
const response = {
message: "image added successfully updated",
data: profile,
};
return res.status(200).send(response);
}
);
});
【问题讨论】:
-
如果您的问题没有解决,请发表评论,否则接受我的回答并点赞
-
我接受了你的回答,它帮助了谢谢你。但是你能帮助理解 img:req.files.map(file => file.path),为什么我们使用 files.map
-
map() 方法创建了一个新数组,其中填充了在调用数组中的每个元素上调用提供的函数的结果,因此
req.files是对象数组,并且希望从每个项目都使用map(),请查看此链接developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
标签: node.js mongodb express node-modules multer