section
h3(id='intro') Getting started
p.
With node installed (download),
get your first application started by creating a directory somewhere
on your machine:
+js.
$ mkdir hello-world
p.
In this same directory you'll be defining the application "package", which
are no different than any other node package. You'll need a package.json
file in the directory, with express defined as a dependency:
+js.
{
"name": "hello-world",
"description": "hello world test app",
"version": "0.0.1",
"private": true,
"dependencies": {
"express": "3.0.0"
}
}
p.
Now that you have a package.json file in this directory you can use
npm(1) to install the dependencies, in this case just
Express:
+js.
$ npm install
p.
Once npm finishes you'll have a localized Express 3.x dependency in
the ./node_modules directory. You may verify this with npm ls
as shown in the following snippet displaying a tree of Express and its
own dependencies.
+js.
$ npm ls
hello-world@0.0.1 /private/tmp
└─┬ express@3.0.0beta7
├── commander@0.6.1
├─┬ connect@2.3.9
│ ├── bytes@0.1.0
│ ├── cookie@0.0.4
│ ├── crc@0.2.0
│ ├── formidable@1.0.11
│ └── qs@0.4.2
├── cookie@0.0.3
├── debug@0.7.0
├── fresh@0.1.0
├── methods@0.0.1
├── mkdirp@0.3.3
├── range-parser@0.0.4
├─┬ response-send@0.0.1
│ └── crc@0.2.0
└─┬ send@0.0.3
└── mime@1.2.6
p.
Now to create the application itself! Create a file named app.js or server.js,
whichever you prefer, require express and then create a new application with express():
+js.
var express = require('express');
var app = express();
p.
With the new application instance you can start defining routes via app.VERB(),
in this case "GET /" responding with the "Hello World" string. The req and
res are the exact same objects that node provides to you, thus you may invoke
res.pipe(), req.on('data', callback) and anything else you
would do without Express involved.
+js.
app.get('/', function(req, res){
res.send('Hello World');
});
p.
Now to bind and listen for connections invoke the app.listen() method,
accepting the same arguments as node's net.Server#listen():
+js.
app.listen(3000);
console.log('Listening on port 3000');