快速体解析器和 multer 值接收问题?



我正在提供带有一些值和图像的帖子请求/product/create

如果我之前控制台每个值

upload(req, res, (err) => {})

它在没有图像信息的情况下正确显示。

如果我在upload(req, res, (err) => {})之后收到值

未显示任何值。

完整的发布请求代码:

app.post('/product/create', (req, res) => {
let filename;
upload(req, res, (err) => {
if(err){
res.render('index', {
msg: err
});
} else {
if(req.file == undefined){
res.render('index', {
msg: 'Error: No File Selected!'
});
} else {
res.render('index', {
msg: 'File Uploaded!',
filename = req.file.filename;
});
}
}
});
const product = {
title : req.body.title,
desc  : req.body.desc,
image  : filename,
}
});

配置穆特:

const storage = multer.diskStorage({
destination: './public/uploads/',
filename: function(req, file, cb){
cb(null,file.fieldname + '-' + Date.now() + path.extname(file.originalname));
}
});

const upload = multer({
storage: storage,
limits:{fileSize: 1000000},
fileFilter: function(req, file, cb){
checkFileType(file, cb);
}
}).single('myImage');

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('Error: Images Only!');
}
}

Multer 不支持上传功能之外的 'req.file.filename'。由于文件名,原始名称,字段名称等是multer的内置API。它仅限于上传功能。

现在,如果您尝试在数据库中上传产品值,则必须仅在 multer 上传函数中创建一个插入函数。

最新更新