Как передать переменную в функцию [другой файл], используя узел JS Express - PullRequest
0 голосов
/ 29 июня 2019

Привет, я работаю над загрузкой изображения. После этого в документе все работает нормально, но я просто хочу сделать функцию более динамичной.

сначала у меня есть мой контроллер

async function store (req, res) {
  const imgName = 'imgName';
    upload(req, res, imgName, (err) => {
        if (err) {
            res.send('eror');
        } else {
            console.log(req.file);
            res.send('test');
        }
    })

}

и в функции загрузки я создаю новые имена файлов helpers.js

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

// the problem are here  imgName not define How can I pass variable into const upload
const upload = multer(imgName,{
    storage: storage
}).single(imgName');


module.exports = {
    upload,
};

1 Ответ

0 голосов
/ 29 июня 2019

Попробуйте экспортировать функцию upload, а не предварительно созданный объект:

const upload = imgName => multer(imgName, { storage: storage }).single(imgName);

module.exports = { upload }

Затем ваш контроллер использует вызов функции с параметрами imgName

async function store (req, res) {
  const imgName = 'imgName';
    upload(imgName)(req, res, imgName, (err) => {
        if (err) {
            res.send('eror');
        } else {
            console.log(req.file);
            res.send('test');
        }
    })

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...