Book Image

Isomorphic JavaScript Web Development

By : Tomas Alabes, Konstantin Tarkus
Book Image

Isomorphic JavaScript Web Development

By: Tomas Alabes, Konstantin Tarkus

Overview of this book

<p>The latest trend in web development, Isomorphic JavaScript, allows developers to overcome some of the shortcomings of single-page applications by running the same code on the server as well as on the client. Leading this trend is React, which, when coupled with Node, allows developers to build JavaScript apps that are much faster and more SEO-friendly than single-page applications.</p> <p>This book begins by showing you how to develop frontend components in React. It will then show you how to bind these components to back-end web services that leverage the power of Node. You'll see how web services can be used with React code to offload and maintain the application logic. By the end of this book, you will be able to save a significant amount of development time by learning to combine React and Node to code fast, scalable apps in pure JavaScript.</p>
Table of Contents (16 chapters)
Title Page
Credits
About the Authors
About the Reviewer
www.PacktPub.com
Customer Feedback
Preface

Implementing a GraphQL server with Node.js


Now that you have the basic understanding about GraphQL type system, let's go ahead and implement a simple GraphQL server using project files from the previous chapter as a boilerplate for this exercise.

You can start by installing the following npm modules:

$ npm install graphql express-graphql sequelize sqlite3 --save-dev

The graphql module contains built-in data types, query validation, and execution logic. This module will be used for creating the GraphQL schema itself. The express-graphql module is a middleware that sits on top of Node.js/Express app and is backed by GraphQL schema created with the graphql npm module. It is capable of parsing bodies of HTTP requests and sending valid GraphQL responses over HTTP. Additionally, this module is capable of rendering a web page with GraphiQL IDE. Sequelize is a popular Node.js-based ORM that we are going to use for working with the database, to make our code less verbose. Finally, the sqlite3 module...