我想检索一个var哈希在另一个模块中使用它。但我有一个回调问题。我有错误“回调不是函数”。我使用回调,因为我的变量哈希值是未定义的,所以我想这是一个异步问题。Node.js - 回调不是函数
hash.js
var fs = require('fs');
var crypto = require('crypto');
var algorithm = 'sha256';
var hash = function(filename, callback){
var shasum = crypto.createHash(algorithm);
var s = fs.ReadStream(filename);
s.on('data', function(data) {
shasum.update(data)
})
s.on('end', function() {
var hash = shasum.digest('hex')
callback(hash);
})
}
exports.hash = hash;
app.js
app.post('/upload', upload.single('userfile'), function(req, res){
res.cookie('filename', req.file.originalname);
res.cookie('filesize', req.file.size);
var filename = __dirname +'/'+ req.file.path;
console.log(hash.hash(filename))
//res.cookie('hash', hash.hash(filename));
res.redirect('/hash')
})
你用2个参数定义你的散列函数,但只用一个参数来调用它:'hash.hash(filename)'。 –
那么,我该如何改变它? – Lock
'hash.hash(文件名,函数(hashResult){console.log(hashResult)})' –