Easier Express With Async/Await

Plain, old Express

// server.js
var express = require('express')
var app = module.exports = express()

require('./routes')

app.listen(3000)
// routes.js
var app = require('./app')

app.get('/user/:id', function (req, res) {







})
// routes.js
var app = require('./app')

app.get('/user/:id', function (req, res) {
  db.findById(req.params.id)






})
// routes.js
var app = require('./app')

app.get('/user/:id', function (req, res) {
  db.findById(req.params.id).then(function (err, user) {





  })
})
// routes.js
var app = require('./app')

app.get('/user/:id', function (req, res) {
  db.findById(req.params.id).then(function (err, user) {
    if (err) {
      res.status(404).send('User not found')
      return
    }

  })
})
// routes.js
var app = require('./app')

app.get('/user/:id', function (req, res) {
  db.findById(req.params.id).then(function (err, user) {
    if (err) {
      res.status(404).send('User not found')
      return
    }
    res.json(user)
  })
})

Adding Babel

require('babel/register')
require('babel/register')({ stage: 1 })

Express On Babel

// server.js
require('babel/register')({ stage: 1 })
var express = require('express')
var app = module.exports = express()

require('./routes')

app.listen(3000)
// routes.js
var app = require('./app')

app.get('/user/:id', async function (req, res) {
  try {
    res.json(await db.findById(req.params.id))
  } catch (err) {
    res.status(404).send('User not found')
  }
})
// server.js
var express = require('express')
var app = module.exports = express()

require('./routes')

app.listen(3000)
// routes.js
var app = require('./app')

app.get('/user/:id', function (req, res) {
  db.findById(req.params.id).then(function (err, user) {
    if (err) {
      res.status(404).send('User not found')
      return
    }
    res.json(user)
  })
})

Links

EASIER EXPRESS WITH ASYNC/AWAIT

By Stephen Belanger

EASIER EXPRESS WITH ASYNC/AWAIT

Learn how to make your express app development easier with async/await and babel.

  • 2,676