Integrate Node.js with Drupal

This page is archived

We're keeping this page up as a courtesy to folks who may need to refer to old instructions. We don't plan to update this page.

This series is about integrating Node.js with Drupal 7 using the Node.js Integration contributed module on Drupal.org. The Node.js Integration project contains a number of submodules, and a separate Node.js application written in Javascript, that uses the Express, Socket.io, and Request packages.

Tutorials in this course
More information

This series is about integrating Node.js with Drupal 7 using the Node.js Integration contributed module on Drupal.org. The Node.js Integration project contains a number of submodules, and a separate Node.js application written in Javascript, that uses the Express, Socket.io, and Request packages.

Node.js is really fantastic for real time communications, something that Drupal is not particularly good at, out-of-the-box. The Drupal Node.js Integration module brings a host of real time capabilities and a client for your site to enable notifications when a variety of events occur, so your users can receive overlay notifications directly in their browser without page reloads!

In this series we'll cover:

This series is a walk-through of how to get Node.js installed in your system, and how to install and configure the Node.js Drupal module, as well as a look at the related submodules. We'll install a different module that's dependent on the Node.js Drupal module. With this, you'll see how dependencies work in the context of the Node.js Drupal module's Node.js application's configuration.

Now, this series is not for the faint of heart. You'll need some Drupal administration knowledge, installing and configuring modules. We shall also be wildly typing things at the command line, so if you have some experience with command line use, that will definitely be helpful!

If you want to take your learning further, look for the self-check questions in the description for each tutorial in this series. These questions are presented to help you make sure you’re understanding the material, and to encourage you to explore how what you've just learned could apply to your own use case.

If you want to integrate Node.js and Drupal 7 so you can provide real time update notifications on your site, as well as a number of other real time communication options, this series is for you!

Additional resources

Node.js
NPM
Drupal Node.js Integration module

More information

To use the Drupal Node.js Integration module, you need Node.js installed on your system, so in this tutorial, I will show you how to get this and the other dependencies installed on your system.

In this lesson, you will learn how to:

  • Install Node.js on your system
  • Test the version of Node.js installed
  • Test the version of NPM installed
  • Install the Node.js Drupal module
  • Install the Node.js project dependencies with NPM

At the time of recording, I installed version v0.12.5 of Node.js. As the note on Node.js Previous Releases states: "Releases 1.x through 3.x were called "io.js" as they were part of the io.js fork. As of Node.js 4.0.0 the former release lines of io.js converged with Node.js 0.12.x into unified Node.js releases." - which explains the rapid version jump to the current 4.x releases.

You should make sure you have the latest version Node.js installed, particularly if there are security releases.

Note: Starting with version 7.x-1.11 of the Drupal module, the Node.js application is no longer bundled with the download. It can be downloaded seperately from GitHub or NPM.

Self-check question: Which version of Node.js do you have installed?

Additional resources

Node.js
Node.js Integration Drupal module
NPM

More information

Note: This video is out of date and will be archived. Check this page for instructions: Node.js integration documentation.

To be able to use the Node.js Integration module, you need to configure both a Node.js application, as well as the Drupal Node.js Integration module itself.

In this lesson, you will learn how to:

  • Enable the Node.js Config module
  • Understand of all of the configuration options
  • Generate a config file for our Node.js application
  • Edit the generated configuration for a basic working setup
  • Start the Node.js application

Self-check question: Did you remember to change the protocols array in your nodejs.config.js?

Additional resources

Drupal Node.js Integration

More information

The Node.js Notifications module is the User Interface (UI) component of the set of Node.js Integration modules. In this video, you'll see the Node.js Integration module's basic functionality.

In this lesson, you will learn how to:

  • Enable the Node.js Notifications module
  • Explore the configuration options
  • Broadcast a notification message
More information

The Node.js Actions module makes use of the Drupal Core module, Trigger, and adds a new Action type that allows for real time notifications to be sent for various Trigger events. Check out this lesson to see it all in action!

In this lesson, I will show you how to:

  • Enable the Node.js Actions module
  • Explore the various notification types
  • Enable notifications for users logging in and out of the site
More information

The Node.js Subscribe module lets you configure your site to allow users to subscribe to real time notifications through your site's UI for particular content types. The Node.js Subscribe module uses the Node.js Notifications module to provide the UI for the notifications, which we covered in Node.js Notifications Module.

In this lesson, I will show you how to:

  • Enable Node.js Subscribe
  • Set permissions to allow users to subscribe to content
  • Subscribe to some content and see Node.js Subscribe in action
More information

Have you ever wanted to watch the "Recent Log Messages" page of Drupal load automatically? This module can be really helpful if you'd like to do just that.

In this lesson, I will show you how to:

  • Enable Node.js Watchdog module
  • Generate and watch log messages in real time
More information

The Node.js Integration module has a number of other contributed modules that depend on it. Node.js Checker is one such module. We'll take a look at how this is set up with the Node.js Integration module by adding a dependency to our Node.js server configuration, and then see it all in action!

In this lesson, I will show you how to:

  • Install the Node.js Checker module
  • Enable the extension in the Node.js server configuration
  • Configure the Node.js Checker block

Additional resources

Node.js Checker

More information

Once you're happy with your Node.js setup in a local development environment, there are some further steps to take before running this set up in a production environment.

While not a requirement, I would highly recommend you use an SSL certificate, and configure your Node.js application and the Drupal Node.js module to run in HTTPS. You can read more about SSL certificates at The Linux Documentation Project.
Up until this point, we have been starting our Node.js application manually, from the command line. This is not a good method for a production environment, so we'll use PM2 to manage the running of our application.

In this lesson, I will show you how to:

  • Install PM2, a Node.js module to manage your Node applications
  • Configure PM2
  • Add SSL configuration for the Node.js server
  • Start up our Node.js application with PM2

Additional resources

PM2
SSL Certificates (The Linux Documentation Project)