javascript - Multer express 不返回函数外的文件名
问题描述
我尝试使用 multer 中间件上传图像并在函数之外获取图像名称。它没有返回我的文件名,但是当我console.log
在函数内部使用时,它返回文件名。
这是我的快速控制器,我称之为上传功能
const uploadData = await utils.uploads.uploadImage('myImage', req);
这是我的上传图片
static async uploadImage(imgName, req, res ) {
//call function setupPath
const setupPath = await this.setupPath();
try {
let upload = await multer({ storage: setupPath }).single(imgName);
const storeImage = await this.storeImage(upload, req, res);
} catch (e) {
console.error(`try/catch(${e})`);
return false;
}
}
这是我的函数 setupPath
static async setupPath() {
const setup = await multer.diskStorage({
destination: './public/uploads/',
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now() + path.extname(file.originalname)); }
})
return setup;
}
这是我的 StoreImage 函数,这是我console.log
req.file -> 它返回文件数据的问题,但是当我console.log
在函数之外它是未定义的
static async storeImage(upload, req, res) {
const uploads = await upload(req, res, (err) => {
if (err) {
// res.send(err);
return 'y';
} else {
console.log(req.file) // here return data
var file = req.file
}
})
console.log(file) // here return undefined
return uploads;
}
如何在函数之外获取var 文件?
解决方案
推荐阅读
- java - 在数据库更新调用之前查找旧数据和当前数据之间的差异
- java - 用java填充具有唯一随机数的二维数组
- arduino - Arduino USB 端口随机消失时如何恢复?
- c - 计算 C 中的单词、字符、换行符的数量
- codeigniter - 调用未定义的方法 My_model::remove_user() Codeigniter
- regex - 如何编写Antlr4语法规则来匹配文件路径?
- python - 以网格形式绘制精灵
- python-3.x - Lambda函数python错误不支持+的操作数类型:'NoneType'和'int'
- windows - 为什么更改主机文件中的主机名不会更改我的计算机名称?
- javascript - 单击“搜索”按钮后如何使搜索栏呈现更改?