Truffle框架中,用nodemon启动服务器报错:UnhandledPromiseRejectionWarning: TypeError: xxx.watch is not a function
以太坊Ebay项目。使用web3监听solidity中事件时,在启用nodemon服务器时出现UnhandledPromiseRejectionWarning: TypeError: xxx.watch is not a function。
.watch监听是web3老版本的监听使用方法。
web3@0.20. x 使用文档
https://learnblockchain.cn/docs/web3js-0.2x/web3.html?highlight=version
web3@1.2.6 使用文档
https://learnblockchain.cn/docs/web3js-0.2x/web3.eth.html#id84
使用watch监听必须保证web3版本不能太高,但导致开头这一问题的并不是版本问题。
查看web3版本时:
npm ls web3
truffle-contract 无效
所以解决开头问题的根本办法是重新安装有效版本web3和truffle-contract。
解决方法:
进入ebay项目中package.json所在目录:
sudo npm uninstall web3
sudo npm uninstall truffle-contract
sudo npm install web3@0.20.0
sudo npm install truffle-contract@3.0.6
结果截图
重新查看web3版本,发现truffle-contract有效了。
重新运行nodemon服务器。