Назначенная проблема глобальной переменной в nodejs - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь загрузить файл на сервер узла.

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

HTML:

<form id="upload" action="/upload" method="POST" enctype="multipart/form-data">
   <input type="submit" />
</form>

Я определяю uploadedfileName как глобальную переменную

JS:

** //declartion**
global.uploadedFileName = '';

//upload route
app.post('/upload', function(req, res) {

    var busboy = new Busboy({
        headers: req.headers
    });
    busboy.on('file', function(fieldname, file, filename, encoding, mimetype) {
        console.log("Context path=" + __dirname);
        var saveTo = path.join(__dirname + "/uploads", filename);

        console.log('Uploading: ' + saveTo);
        file.pipe(fs.createWriteStream(saveTo));

        ** //After I am uploading the file at that time I am trying to store file name in to this variable**
        global.uploadedFileName = filename;

    });
    busboy.on('finish', function() {
        console.log('Upload complete');
        res.writeHead(200, {
            'Connection': 'close'
        });
        res.end("That's all folks!");
    });

    return req.pipe(busboy);

});


function getResponseWithPython(prevMsg, cb) {

    ** // I want to get the global variable in this function with the file name**
    console.log(" global.uploadedFileName::: " + global.uploadedFileName);
    var pythonRes = '';
    var formData = {

        // Pass data via Streams
        input_file: fs.createReadStream(__dirname + '/GoogleHeader.csv')

    };
    process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
    var req = request.post({
        url: 'https://google.com:443/classification/',
        formData: formData
    }, function optionalCallback(err, httpResponse, body) {
        if (err) {
            return console.error('upload failed:', err);
        }
        console.log('Upload successful!  Server responded with:', body);
        pythonRes = body;

        return cb(pythonRes);
    });

};

Примечание: я упомянул комментарии в коде, чтобы понять поток кода и мое требование

Ответы [ 2 ]

0 голосов
/ 21 мая 2018

Попробуйте использовать process.env.uploadedFileName = '';

Я уверен, что это сработает.

0 голосов
/ 16 мая 2018

Не присваивать значение во время объявления.

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