在Multer变量中设置全局变量

问题描述 投票:0回答:1

我正在使用multer上传图像,我正在生成一个链接以保存到数据库中但是为了做到这一点,我首先将文件保存到服务器。 “链接”是文件的名称及其扩展名,但我无法绕过如何设置“链接”的全局变量以便稍后在数据库中保存或者运行函数?

var link;
var storeImageData = multer.diskStorage({
    destination: function(req, file, callback) {
        callback(null, './uploads');
    },
    filename: function(req, file, callback) {
        var fileType = file.originalname;
        link = shortid.generate() + "." + fileType;
        callback(null, link);
    }
});

console.log(link);

正如你所看到我试图设置“链接”但这显然不起作用。有没有办法使这项工作?或者我应该调查什么?

javascript node.js multer
1个回答
1
投票

您可以保存链接req并在保存到数据库时访问它。下面是一个例子:

在你的文件名功能:

filename: function(req, file, callback) {
        var fileType = file.originalname;
        link = shortid.generate() + "." + fileType;
        req.link = link;    //add this line
        callback(null, link);
    }

然后在“save to db”中间件中,您可以在req.link获取链接。

© www.soinside.com 2019 - 2024. All rights reserved.