Node.js UnhandledPromiseRejection:TypeError:无法读取未定义的属性“符号”

Posted

技术标签:

【中文标题】Node.js UnhandledPromiseRejection:TypeError:无法读取未定义的属性“符号”【英文标题】:Node.js UnhandledPromiseRejection: TypeError: Cannot read property 'sign' of undefined 【发布时间】:2018-03-18 01:37:21 【问题描述】:

tran.js

var CoinStack = require('coinstack-sdk-js')

var coinstackclient = new CoinStack('YOUR_COINSTACK_ACCESS_KEY',
'YOUR_COINSTACK_SECRET_KEY'); // Actual keys not shown

var privateKeyWIF = CoinStack.ECKey.createKey(); //개인키 생성

var txBuilder = coinstackclient.createTransactionBuilder();
txBuilder.addOutput("1Q8xE8T3G9mxRoDUde6gDSxnK1uCac2kqh", 
CoinStack.Math.toSatoshi("0.01"))
txBuilder.setInput("1Q8xE8T3G9mxRoDUde6gDSxnK1uCac2kqh");
  txBuilder.buildTransaction(function(err, tx) 
  tx.sign(privateKeyWIF)
  var rawTx = tx.serialize()
  // send tx
  client.sendTransaction(rawTx, function(err) 
    if (null != err) 
        console.log("failed to send tx");
      
   );
);

错误

(node:12012) UnhandledPromiseRejectionWarning: 未处理的承诺拒绝 (拒绝 id:1):TypeError:无法读取未定义的属性“符号” (节点:12012)[DEP0018] DeprecationWarning:未处理的承诺拒绝是 已弃用。将来,未处理的 Promise 拒绝将 使用非零退出代码终止 Node.js 进程。

我不知道该怎么办

【问题讨论】:

【参考方案1】:

txBuilder.buildTransaction() 很可能会失败,而且回调函数中的 tx 参数确实不是预期的对象。

您应该在使用tx 之前检查错误,如下所示:

txBuilder.buildTransaction(function(err, tx) 
    if (err) 
        // output err or do something with it
        console.log('failed to build transaction');
        console.log(err);

        // stop here.
        return;
    


    tx.sign(privateKeyWIF)
    var rawTx = tx.serialize();
        // send tx
        client.sendTransaction(rawTx, function(err) 
        if (err) 
            console.log("failed to send tx");
        
    );
);

【讨论】:

【参考方案2】:

检查tx是否不是nullundefined,然后为ex调用其函数,例如if (ex != null && ex.sign) ...

【讨论】:

【参考方案3】:

回调的第二个参数“tx”很可能是未定义的。

【讨论】:

以上是关于Node.js UnhandledPromiseRejection:TypeError:无法读取未定义的属性“符号”的主要内容,如果未能解决你的问题,请参考以下文章

[Node.js]如何在IDEA中配置Node.js

node.js 初识node.js,运行在服务端的 JavaScript

node.js教程基础:node.js命令行选项

Node.js HTTP模块

Node.js基础:第一篇

270 Node.js快速入门:Node.js 的组成,Node.js基础语法,Node.js全局对象global