【发布时间】:2021-09-16 23:10:39
【问题描述】:
我在我的服务器上使用 multer 上传文件,而在使用 limits: { fileSize: 3000000 } 上传时,我将文件大小限制为 3MB。现在我面临的问题是,当上传更大的文件时,我收到MulterError: File too large at abortWithCode 错误,并且我的服务器正在中止并崩溃。我尝试使用if (err instanceof multer.MulterError) { console.log("file too large")} 并使用upload 作为中间件来处理错误,但它似乎不起作用,当上传更大的文件时我的服务器不断崩溃。知道如何处理错误情况吗???我不希望我的服务器崩溃并将错误作为对 API 的响应发送出去
路由器:
const multer = require("multer");
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, "./uploads");
},
filename: function (req, file, cb) {
cb(null, Date.now() + file.originalname);
},
});
const upload = multer({ storage: storage, limits: { fileSize: 2000000 } });
module.exports.setRouter = (app) => {
app.post("/create", upload.single("imageUrl"), userController.createUser);
}
控制器功能:
let createUser = (req, res) => {
let newUser = new UserModel({
name: req.body.name,
email: req.body.email,
password: passwordLib.hashpassword(req.body.password),
imageUrl: req.file.path,
});
// saving the new user
newUser.save((err, result) => {
if (err) {
console.log(err);
res.send(err);
} else {
res.send(result);
}
});
};
app.js
const express = require("express");
const app = express();
app.use("/uploads", express.static("uploads"));
【问题讨论】:
标签: node.js express file-upload multer