我想获得一个回调函数的变量另一个函数

时间:2017-10-21 10:20:12

标签: node.js

coin.js

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

我有这个代码,然后我想在下面的函数中调用var'hash'。

我不知道该怎么做,我想要修复代码。

我需要你的帮助。

1 个答案:

答案 0 :(得分:0)

使用全局变量:

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