私はこのコントローラーを持っています
const getBalance = async (address, network) => {
const web3 = getWeb3Instance(network);
const currentBalance = await web3.eth.getBalance(address);
const formattedBalance = web3.utils.fromWei(currentBalance, 'ether');
return formattedBalance
};
これは私がルートでそれを使用する方法です:
router.post('/getBalance', (req, res) => {
const {address,network} = req.body
try {
res.status(200).send(controllers.getBalance(address,network))
} catch (e) {
res.status(404).send(`${e}`)
}
});
私が
console.log(formattedBalance)
正解をログに記録しますが、応答では空のオブジェクトを送信しています
{}
理由はわかりませんが、expressとweb3でnodejsを使用しています。
何か提案がありますか?
関連した質問
- いくつかのIPを除いてすべての人にミドルウェアを適用する必要がありますが、ルート外でreqとresを取得できません。どうすれば適用できますか?
- httpsクライアントのサーバーに画像を表示するにはどうすればよいですか?
- SyntaxError:モデルでのJSON入力の予期しない終了
- 機関砲を備えたベンチマークエクスプレスAPI
- __dirnameが定義されていません
- すべてのプロパティを必要かどうかをマークするJoi
- Expressjs別のリクエストが処理されている場合にリクエストを防ぐ方法は?
- TypeError:未定義のnodejs expressmvcのプロパティ 'render'を読み取れません
- ERR EMPTY RESPONSE
あなたは言葉を持っています
async
あなたの機能の前に。置くと関数の動作が異なりますasync
その前に。それは約束のように機能します。試しましたか
console.log(controllers.getBalance(address,network))
?ブラウザに表示されますPromise { <pending> }
問題は、保留中の約束を送り返すことです。
これに変更してください。約束が解決するまで待つ必要があります