在Multer变量中设置全局变量

时间:2017-12-19 07:05:32

标签: javascript node.js multer

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

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);

正如您所看到的,我正在尝试设置"链接"但这显然不会奏效。有没有办法使这项工作?或者我应该研究什么?

1 个答案:

答案 0 :(得分:1)

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

在您的文件名功能中:

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

然后在你的"保存到db" middlware你可以在req.link获得链接。