Set up your Node.js and Express development environment
Nội Dung Chính
Set up your Node.js and Express development environment
In this guide, we’ll cover how to set up your Node.js development environment for an Express project. We’ll also walk through some helpful tools that we recommend for all Node.js applications that use Twilio: ngrok and the Twilio Node.js SDK
Install Node.js
How you install Node.js varies depending on your operating system.
Operating System
Instructions
OS X
The easiest way to install Node.js on OS X is to use the official installer from nodejs.org. You can also use Homebrew if you prefer.
To manage and switch between versions of Node.js on your machine, we recommend using nvm.
Windows
The easiest way to install Node.js on Windows is the official installer from nodejs.org. You can also use Chocolatey if you prefer.
To manage and switch between versions of Node.js on your machine, we recommend using nvm-windows.
Linux
The Node.js installation method varies by distribution.
To manage and switch between versions of Node.js on your machine, we recommend using nvm.
Install a text editor or IDE
Before we can start a Node.js project, we’ll need a place to write our code.
If you already have a code writing tool of choice, you can stick with it for developing your Node.js application. If you’re looking for something new, we recommend trying out a few options:
- Visual Studio Code is currently the most popular Integrated Development Environment (IDE) used for JavaScript projects. It’s a fast, free editor and debugger that runs on all platforms and comes with many helpful tools already installed.
- WebStorm is another extremely powerful IDE, built on the open-source IntelliJ Platform. It is free to try, but requires a paid license after 30 days.
- Node.js Tools for Visual Studio is a great option if you’re already a Visual Studio user.
- Vim is a perennial favorite text editor among advanced users.
If you’re new to programming, we highly recommend getting off to a good start with Visual Studio Code. Many developers here at Twilio and in the wider JavaScript ecosystem are extremely happy using it.
Start a new Node.js project with npm init
Before starting any new Node.js project we should run npm init
to create a new package.json
file for our project.
Create a new empty directory in your development environment and run npm init
. You’ll then answer a few basic questions about your project, and npm will create a new package.json
file for you when you’re done.
$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
See `npm help init` for definitive documentation on these fields
and exactly what they do.
Use `npm install <pkg>` afterwards to install a package and
save it as a dependency in the package.json file.
Press ^C at any time to quit.
package name: (my-project)
version: (1.0.0)
description: A sample Twilio project
entry point: (index.js)
test command:
git repository:
keywords:
author: Jane Doe
license: (ISC)
About to write to /Users/<your-username>/my-project/package.json:
{
"name": "my-project",
"version": "1.0.0",
"description": "A sample Twilio project",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Jane Doe",
"license": "ISC"
}
Is this OK? (yes) yes
Now we’re ready to install our Node.js dependencies.
You can quickly initialize your project and skip the above prompts by running npm init -y
Install Express.js and the Twilio Node.js SDK
We’re almost ready to write an Express web application, but first we need to install the Express package using npm
.
# Use npm to install the express and twilio packages
$ npm install express twilio
# List the installed dependencies and their versions
$ npm ls
[email protected] /Users/<your-username>/my-project
├── [email protected]
└── [email protected]
Node.js uses npm to manage dependencies, so the command to install Express and the Twilio SDK to our development environment is npm install express twilio
.
Installing these packages tells npm to add the Express and Twilio packages to the dependencies
object in our project’s package.json
file. When we want to install these same packages again in the future – like on a production server – we can just run npm install
.
Create a simple Express.js application
We can test that we configured our development environment correctly by creating a simple Express application. We’ll grab the ten-line example from Express’s documentation and drop it in a new file called index.js
.
const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
res.send('Hello World!');
});
app.listen(port, () => {
console.log(`Example app listening at http://localhost:${port}`);
});
We can then try running our new Express application with the command node index.js
. If you open http://localhost:3000 in your browser, you should see the “Hello World!” response.
If you’re using a virtual machine for your development environment, like Vagrant, you might not see your Express application at the localhost
host name. Continue on to the ngrok section for an easy way to fix this.
Install ngrok for local development
Once you see your sample Express application’s “Hello World!” message, your development environment is ready to go. However, for most Twilio projects you’ll want to install one more helpful tool: ngrok.
Most Twilio services use webhooks to communicate with your application. When Twilio receives an incoming phone call, for example, it reaches out to a URL in your application for instructions on how to handle the call.
When you’re working on your Express application in your development environment, your app is only reachable by other programs on the same computer, so Twilio won’t be able to talk to it.
Ngrok is our favorite tool for solving this problem. Once started, it provides a unique URL on the ngrok.io domain which will forward incoming requests to your local development environment.
To start, head over to the ngrok download page and grab the binary for your operating system: https://ngrok.com/download
Once downloaded, make sure your Express application is running, and then start ngrok using the command ./ngrok http 3000
. You should see output similar to this:
ngrok by @inconshreveable (Ctrl+C to quit)
Session Status online
Account <Your name> (Plan: Free)
Version 2.3.40
Region United States (us)
Web Interface http://127.0.0.1:4040
Forwarding http://6e81-2601-1c0-6100-5087-309b-c292-5e5f-1f.ngrok.io -> http://localhost:3000
Forwarding https://6e81-2601-1c0-6100-5087-309b-c292-5e5f-1f.ngrok.io -> http://localhost:3000
Connections ttl opn rt1 rt5 p50 p90
0 0 0.00 0.00 0.00 0.00
Your unique ngrok domain name will be visible on the “Forwarding” line. Here, ours is “https://6e81-2601-1c0-6100-5087-309b-c292-5e5f-1f.ngrok.io”.
If everything is working correctly, you should be able to open that domain name in your browser and see your Express application’s “Hello World!” message displayed at your new ngrok URL.
Anytime you’re working on your Twilio application and need a URL for a webhook, use ngrok to get a publicly accessible URL like this one.
Contributors:
Rate this page:
1
2
3
4
5
Need some help?
We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd by visiting Twilio’s Stack Overflow Collective or browsing the Twilio tag on Stack Overflow.