We know Drupal is an amazing platform for making websites. But did you know it’s also a world-class content API that can easily be integrated with a other technologies? In this class you’ll learn how to combine Drupal with Node.js, a popular technology for building highly interactive websites, to build rich digital experiences.
You will write code all day! By the end, you'll have written your first Node.js application(s) and have integrated Node.js's real-time wizardry into Drupal's content management magic.
The Four Kitchens Web Chefs will show you how to:
- Strategies for success when using Drupal as a content API
- Write code that reads and writes data to and from your Drupal site
- Write custom API endpoints in Drupal to connect to your realtime application
- Gain experience with the popular Node.js framework: Express
- Know what Node.js is good at and when a different tool is better
- Understand how to use NPM node's world class package manager
- Write non-blocking asynchronous code and how to spot it's evil twin: synchronous blocking code
Node.js is a power tool for writing fast, real time applications. At Four Kitchens we've used it for:
- Creating a responsive web game that mimics the experience of playing with magnetic poetry on the web, Drupal Poetry
- Providing a feed ingestion and processing application that processed over 300 feeds per minute and broadcasting them out to hundreds of subscribed sites.
- Providing real time commenting for live video events on a Drupal site.
- Building a rich dynamic site for NBC’s The Tonight Show starring Jimmy Fallon.
- Helping large media clients build a performant and extensible solution for their public facing publication.
- The patterns we establish when integrating Node.js can easily be adapted to integrating - Drupal with other technologies such as Ruby, iOS, or Android.
What will you receive during the course?
Each attendee will have access to their own development environment that includes all necessary assets and content to jump into the hands-on exercises. The environment will stay up for 30 days after the training. We will post all links and resources on our website, create a mailing list for follow-up questions, and create a Google Doc to collaborative ask questions and share markup during (and after) the training.
- Intro to Headless Drupal
- When to go Headless (Lecture)
- Architecture Patterns (Lecture)
- Real world Examples (Lecture)
- Drupal Services
- Install Services Module (Hands on)
- Creating Custom Services Endpoints (Hands on)
- Creating Custom Services Endpoints II (Hands on)
- Authentication & Permissions (Hands on)
- Intro to Node.js
- Using NPM (Hands on)
- Install Express App (Hands on)
- Console.log (Hands on)
- Intro to Async Programming (Hands on)
- Connecting Drupal and Node.js
- Pull content from Drupal (Hands on)
- Authentication with Drupal (Hands on)
- Theme Drupal Content (Hands on)
- Pull content from Drupal II (Hands on)
- Caching Drupal Content in Node.js
- Intro to caching issues (lecture)
- Caching Drupal content using MongoDB (Hands on)
- Ping Node.js on changes in Drupal (Hands on)
- Advanced Caching issues (Lecture)
- Strategies for User Generated Content
- Commenting (Lecture)
- Creating content in Drupal using Services (Lecture)
- Protecting Drupal with queuing (Lecture)
Who will gain the most from this course?
- Drupal Developers who want to learn how to use Drupal as their CMS and an other technology to get that content to their users. In our case that technology will be Node.js.
- Drupal developers who want to better understand how to bring asynchronous functionality to their sites. This class is a beginner intro to Node.js, and is not appropriate for developers who use Node.js on a regular basis.
Prerequisites for this course
Laptop with SFTP, SSH software and a text editor installed. Any local operating system is fine, but our trainers don't have experience debugging Windows connectivity problems.
Comfortable writing PHP to use Drupal hooks and have written a custom module.
Working knowledge of the services module is helpful, and a great thing to try beforehand. :-)
- Have used jQuery for to add functionality
- Experience with AJAX patterns helpful
- Comfortable using the command line to navigate directories and launch programs. (cd, ls and the like).
When & Where
If no timezone is set on your profile, time is displayed in UTC.
Update your profile's timezone