2017-10-21 54 views
0

coin.jsJe veux obtenir une variable de fonction de rappel une autre fonction

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

    var filename = __dirname +'/'+ req.file.path; 

    var s = fs.ReadStream(filename); 
    s.on('data', function(data) { 
    shasum.update(data) 
    }) 
    s.on('end', function() { 
    var hash = shasum.digest('hex') //this var 
    console.log("Hash : "+ hash + ' ' + filename) 

    fs.unlink(filename, function (err) { //파일제거 
     if (err) throw err; 
     console.log('successfully deleted '+ filename); }); 

    res.send('Uploaded : ' + hash + "   " + filename); 
    }) 
}) 

app.get('/stampid', function(req, res){ 
    client.stampDocument(hash, function(err, stampId) { //i want to call hash 
     res.render('coin2', {si:stampId}) 
    }); 
}) 

J'ai ce code, alors je veux appeler un var hachage »dans la fonction ci-dessous.

Je ne sais pas quoi faire, je veux un code fixe.

J'ai besoin de votre aide.

+0

Pourriez-vous s'il vous plaît messages d'erreur et le code entier à votre question? –

Répondre

0

utilisation variable globale:

var hash; // <----- declare it here 

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

    var filename = __dirname +'/'+ req.file.path; 

    var s = fs.ReadStream(filename); 
    s.on('data', function(data) { 
    shasum.update(data) 
    }) 
    s.on('end', function() { 
    hash = shasum.digest('hex') //this var 
    console.log("Hash : "+ hash + ' ' + filename) 

    fs.unlink(filename, function (err) { //파일제거 
     if (err) throw err; 
     console.log('successfully deleted '+ filename); }); 

    res.send('Uploaded : ' + hash + "   " + filename); 
    }) 
}) 

app.get('/stampid', function(req, res){ 
    client.stampDocument(hash, function(err, stampId) { //i want to call hash 
     res.render('coin2', {si:stampId}) 
    }); 
}) 
+0

il doesnt. travaille le. hash has undefined –

+0

hash sera indéfini si 'app.get ('/ stampid', ...' s'exécute avant 'app.post ('/ upload', ...' –