Become a member
to unlock all features

Level Up!

Access all courses & lessons on egghead today and lock-in your price for life.


    Create a modern web API using Koa v2 and ES2017

    Patricio LópezPatricio López

    We take advantage of the new Node.js features like async/await from ES2017 and the awesome yarn package-manager to create modern JSON APIs with Koa v2. Make sure you have at least Node.js 7.6.x installed.

    The ctx (context) variable encapsulates a Request and Response object, they are similar to what we already know about the req and res objects from the Express.js framework, but it is more expressive and easy to understand thanks to its getters, _setters and some shortcuts. It also parses the response content and sets the Content-Type header based on the type of its body property. Finally, we can manually set the response headers and status code.

    The HTTP client from the video is wuzz.



    Become a Member to view code

    You must be a Member to view code

    Access all courses and lessons, track your progress, gain confidence and expertise.

    Become a Member
    and unlock code for this lesson




    We start creating a new node.js application, and we install Koa. With inaudible , this is pretty fast. Then, we go to our JavaScript file, and we enable strict mode. We import Koa class constructor from the install module using the required statement.

    Now, we can create an app instance from the imported class. The elegance of Koa -- it's all about middlewares. A middleware is just a function which, first argument is a context variable. Here, we can set the body response content to a JavaScript object.

    To start our application, we have to listen to a specific port. We will go to our package, that JSON file, and we'll create a script session. The start command will run node on our index.js file. Going back to the terminal, we run inaudible start. Then, using any HTTP client, we perform a git request.

    We should expect a JSON response with its respective header. Furthermore, we have control over the context variable. Here, in this example, we will simulate a not found response. To try this, we must restart our application. Finally, we can see that the status code has changed.