From 8fc53880a29be57a9920522d9b7935b09a10f99f Mon Sep 17 00:00:00 2001 From: xcps Date: Sat, 3 Feb 2018 23:54:25 +0500 Subject: [PATCH] Promises turned to async/await --- routes/address.js | 31 +++++++++++----------- routes/block.js | 21 +++++++-------- routes/index.js | 14 +++++----- routes/search.js | 61 +++++++++++++++++++++---------------------- routes/transaction.js | 37 ++++++++++++-------------- 5 files changed, 78 insertions(+), 86 deletions(-) diff --git a/routes/address.js b/routes/address.js index 82c93ea..d722abf 100644 --- a/routes/address.js +++ b/routes/address.js @@ -3,13 +3,13 @@ var express = require('express'); var router = express.Router(); /* GET home page. */ -router.get('/:address', function(req, res, next) { +router.get('/:address', async function(req, res, next) { - const address = encodeURI(req.params.address); + const addrss = encodeURI(req.params.address); - models.Address.findOne({ + const address = await models.Address.findOne({ where: { - address, + address: addrss, }, include: { model: models.Vout, @@ -17,18 +17,17 @@ router.get('/:address', function(req, res, next) { model: models.Transaction, }, }, - }) - .then((address) => { - if (address === null) { - res.status(404).render('404'); - return; - } - const txes = []; - address.Vouts.forEach((vout) => txes.push(vout.Transaction.txid)); - res.render('address', { - address: address.address, - txes, - }); + }); + + if (address === null) { + res.status(404).render('404'); + return; + } + const txes = []; + address.Vouts.forEach((vout) => txes.push(vout.Transaction.txid)); + res.render('address', { + address: address.address, + txes, }); }); diff --git a/routes/block.js b/routes/block.js index 900be15..e7d1cca 100644 --- a/routes/block.js +++ b/routes/block.js @@ -3,9 +3,9 @@ var express = require('express'); var router = express.Router(); /* GET home page. */ -router.get('/:hash', function(req, res, next) { +router.get('/:hash', async function(req, res, next) { const hash = encodeURI(req.params.hash); - models.Block.findOne({ + const block = await models.Block.findOne({ where: { hash, }, @@ -13,16 +13,15 @@ router.get('/:hash', function(req, res, next) { model: models.Transaction, }, }) - .then((block) => { - if (block === null) { - res.status(404).render('404'); - return; - } - block.dataValues.time = block.time.toUTCString(); - res.render('block', { - block, - }); + if (block === null) { + res.status(404).render('404'); + return; + } + block.dataValues.time = block.time.toUTCString(); + res.render('block', { + block, }); + }); module.exports = router; diff --git a/routes/index.js b/routes/index.js index 9de27f8..fb492f3 100644 --- a/routes/index.js +++ b/routes/index.js @@ -3,17 +3,15 @@ var express = require('express'); var router = express.Router(); /* GET home page. */ -router.get('/', function(req, res, next) { - models.Block.findAll({ +router.get('/', async function(req, res, next) { + + const blocks = await models.Block.findAll({ order: [['height', 'DESC']], limit: 30, - }) - .then((blocks) => { - res.render('index', { - blocks, - }); }); - + res.render('index', { + blocks, + }); }); module.exports = router; diff --git a/routes/search.js b/routes/search.js index 2b57aeb..8f0984b 100644 --- a/routes/search.js +++ b/routes/search.js @@ -3,44 +3,43 @@ var express = require('express'); var router = express.Router(); /* GET home page. */ -router.post('/', function(req, res, next) { +router.post('/', async function(req, res, next) { const search = encodeURI(req.body.search); - models.Address.findOne({ + // looking for address + const address = await models.Address.findOne({ where: { address: search, }, - }) - .then((address) => { - if (address) { - res.redirect(`/address/${address.address}`); - return; - } - models.Transaction.findOne({ - where: { - txid: search, - }, - }) - .then((transaction) => { - if (transaction) { - res.redirect(`/transaction/${transaction.txid}`); - return; - } - models.Block.findOne({ - where: { - hash: search, - }, - }) - .then((block) => { - if (block) { - res.redirect(`/block/${block.hash}`); - return; - } - res.status(404).render('404'); - }); - }); }); + if (address) { + res.redirect(`/address/${address.address}`); + return; + } + + // looking for transaction + const transaction = await models.Transaction.findOne({ + where: { + txid: search, + }, + }); + if (transaction) { + res.redirect(`/transaction/${transaction.txid}`); + return; + } + + // looking for block + const block = await models.Block.findOne({ + where: { + hash: search, + }, + }); + if (block) { + res.redirect(`/block/${block.hash}`); + return; + } + res.status(404).render('404'); }); module.exports = router; diff --git a/routes/transaction.js b/routes/transaction.js index c394532..203c129 100644 --- a/routes/transaction.js +++ b/routes/transaction.js @@ -3,10 +3,10 @@ var express = require('express'); var router = express.Router(); /* GET home page. */ -router.get('/:txid', function(req, res, next) { +router.get('/:txid', async function(req, res, next) { const txid = encodeURI(req.params.txid); - models.Transaction.findOne({ + const transaction = await models.Transaction.findOne({ where: { txid, }, @@ -22,27 +22,24 @@ router.get('/:txid', function(req, res, next) { model: models.Transaction, as: 'txtx', }], - }) - .then((transaction) => { - if (transaction === null) { - res.status(404).render('404'); - return; - } - const vouts = []; - transaction.Vouts.forEach((vout) => { - vout.Addresses.forEach((address) => { - vouts.push({ - address: address.address, - value: vout.value, - }); + }); + if (transaction === null) { + res.status(404).render('404'); + return; + } + const vouts = []; + transaction.Vouts.forEach((vout) => { + vout.Addresses.forEach((address) => { + vouts.push({ + address: address.address, + value: vout.value, }); }); - res.render('transaction', { - transaction, - vouts, - }); }); - + res.render('transaction', { + transaction, + vouts, + }); }); module.exports = router;