Skip to content

Express application generator

Use the application generator tool, express-generator, to quickly create an application skeleton.

You can run the application generator with the npx command (available in Node.js 8.2.0).

Terminal window
npx express-generator

For earlier Node versions, install the application generator as a global npm package and

Terminal window
npm install -g express-generator

then launch it:

Terminal window
express

Display the command options with the -h option:

Terminal window
express -h
Usage: express [options] [dir]
Options:
-h, --help output usage information
--version output the version number
-e, --ejs add ejs engine support
--hbs add handlebars engine support
--pug add pug engine support
-H, --hogan add hogan.js engine support
--no-view generate without view engine
-v, --view <engine> add view <engine> support (ejs|hbs|hjs|jade|pug|twig|vash) (defaults to jade)
-c, --css <engine> add stylesheet <engine> support (less|stylus|compass|sass) (defaults to plain css)
--git add .gitignore
-f, --force force on non-empty directory

For example, the following creates an Express app named myapp. The app will be created in a folder named myapp in the current working directory and the view engine will be set to Pug:

Terminal window
express --view=pug myapp
create : myapp
create : myapp/package.json
create : myapp/app.js
create : myapp/public
create : myapp/public/javascripts
create : myapp/public/images
create : myapp/routes
create : myapp/routes/index.js
create : myapp/routes/users.js
create : myapp/public/stylesheets
create : myapp/public/stylesheets/style.css
create : myapp/views
create : myapp/views/index.pug
create : myapp/views/layout.pug
create : myapp/views/error.pug
create : myapp/bin
create : myapp/bin/www

Then install dependencies:

Terminal window
cd myapp
npm install

On MacOS or Linux, run the app with this command:

Terminal window
DEBUG=myapp:* npm start

On Windows Command Prompt, use this command:

Terminal window
set DEBUG=myapp:* & npm start

On Windows PowerShell, use this command:

Terminal window
$env:DEBUG='myapp:*'; npm start

Then, load http://localhost:3000/ in your browser to access the app.

The generated app has the following directory structure:

  • app.js
  • Directorybin
    • www
  • Directorypackage.json
    • Directorypublic
      • images
      • javascripts
      • Directorystylesheets
        • style.css
  • Directoryroutes
    • index.js
    • users.js
  • Directoryviews
    • error.pug
    • index.pug
    • layout.pug