Неопределенная ошибка foreach возникла из ниоткуда (массив express node js) - PullRequest
0 голосов
/ 08 мая 2020

я использую foreach для получения массива из url (http://localhost: 3000 / main? A = aaa.jpg & a = bbb.jpg ). Он работает раньше, но внезапно перестает работать. AN undefined вызывает ошибку. Это мой код:

//Define module

var express = require('express');
var app = express();
const { exec } = require('child_process');

//extract function
function extract (req,res,next){
    res.write(`filename : ${req.query.a}`);
    const filename = req.query.a;
    console.log(filename);
    filename.forEach((name) => {
        console.log(name);
        exec(`find wi_file/* -type f \\( -name "${name}" \\) -print0 | tar -rvf try.tar --null -T -`,(err,stdout,stderr)=>{
            if (err){
                console.log(`exec error : ${err}`);
                return;
            };
        });
    });
    next();
};

//main function
function main (req,res,next){
    res.write('\nkuor dok \n');
    res.end();
};

app.use(extract);
app.get('/main',main);
app.listen(3000);

Некоторые говорили, что это может быть причиной отсутствия; . Я не могу определить ни одного. может кто-нибудь сказать мне, в чем причина моей ошибки. это ошибка после запуска

1 Ответ

0 голосов
/ 08 мая 2020

Вы filename не определено. Вот почему он выдает ошибку. filename должен быть array, тогда вы можете использовать его с foreach, как вы использовали выше. Вы также можете добавить проверку, если имя файла - это массив, например

if(Array.isArray(filename)){
  //do something with filename
}
...