无法管理异步函数执行并获取未定义的变量

时间:2018-01-06 20:25:55

标签: javascript node.js

我正在尝试发送带有多个信息的JSON,其中一个字段取决于外部函数。当我得到JSON结果时,该字段为空,因为send函数在变量值补充函数之前执行。这是我的代码:

router.post('/sign', function(req, res) {
    var id_server = serverKeys.id_server;
    var id_client = req.body[0].A;
    var moneda = req.body[2].coin;
    var cantidad = req.body[3].cantidad;
    var signed = blindSignature.sign(moneda, cantidad);

    console.log('Mensaje firmado en la api: ' + signed);
    var data = ([{"A": id_server}, {"B": id_client}, {"coin_signed": signed}, {'cantidad': cantidad}]);
    var Po = nonRepudiation.gethash(data);
    var response = ([{"A": id_server}, {"B": id_client}, {"signed": signed}, {'cantidad': cantidad}, {'Po': Po}, {'status': "Mensaje firmado"}]);
    res.status(200).send(response);
});

var signed值依赖于blindSignature.sign()函数。因此,数据JSON上的coin_signed字段发送为空。

exports.sign = function(mensaje, cantidad) {
console.log('Firma ciega');
Key.find({"valor": cantidad}, function (err, clave) {
    if (err) return next(err);
    d = clave[0].d;
    n = clave[0].n;
    var signed = bigInt(mensaje).modPow(d, n);
    console.log("Mensaje firmado en módulo: " + signed.toString());
    return signed;
});};

提前致谢。

0 个答案:

没有答案