【发布时间】:2019-06-15 20:10:14
【问题描述】:
我创建了名为 FileUpload 的类,并创建了一个函数来使用 multer 上传多个文件。我想在控制器中使用此方法,但我不能这样做。我无法从请求中获取其他字段。 这是 FileUpload 类:
var multer = require('multer');
class FileUpload{
constructor(){
this.storage = null;
this.filepath = null;
this.upload = null;
}
uploadMultipleFile(req,res,path){
this.filepath = path;
this.storage = multer.diskStorage({
destination : (req,file,callback) =>{
callback(null,path)
},
filename : (req,file,callback)=>{
this.filepath = this.filepath + file.fieldname + '-' + new Date().getTime();
callback(null,this.filepath);
}
});
this.upload = multer({storage:this.storage}).array('files',req.files.length);
this.upload(req,res,(err) => {
if(err){
return res.status(403).send({
success:false,
message : SystemMessage.UploadErrorMessage.replace('{0}',"Files"),
data : {
filepath : filepath
}
});
}
return res.status(200).send({
success:true,
message : SystemMessage.UploadSuccessMessage.replace('{0}',"Files"),
data : {
filepath : filepath
}
});
});
}
}
module.exports = FileUpload;
这是我定义路由的控制器文件:
const express = require('express');
const router = express.Router();
const FileUpload = require('../services/fileUpload');
router.post("/add",(req,res)=>{
let localdate=CommonFunction.datetime();
let fileUpload = new FileUpload();
let obj = {
user_id:req.body.user_id,
subject:req.body.subject,
message:req.body.message,
created_date:localdate,
modified_date:localdate
};
});
当我从邮递员那里调用这条路线时,我在正文中使用了表单数据格式。我得到了以下响应:
{
user_id: undefined,
subject: undefined,
message: undefined,
created_date: '2019-1-22 13:55:42',
modified_date: '2019-1-22 13:55:42'
}
指导我如何在路由 /add 中使用 uploadMultipleFile 函数?。
【问题讨论】:
标签: node.js express file-upload postman multer