expresser

A ready-to-use platform for Node.js web apps, built on top of Express.

npm install expresser
5 downloads in the last week
77 downloads in the last month

Expresser

A Node.js platform with web, database, email, logging, twitter and firewall features, built on top of Express. Official project page: http://expresser.codeplex.com

Build Status

Why Expresser?

Even if Express itself does a good job as a web application framework, it can still be considered low level. So the idea of Expresser is to aggregate common modules and utils into a single package, and make it even easier to start your Node.js web app.

How to configure

All settings for all modules are wrapped on the settings.coffee file. If you wish to customize any of these settings, please create a settings.json file on the root of your app folder with the specific keys and values. Detailed instructions are available on the top of the settings.coffee file.

You can also change settings directly on runtime, via the settings property of Expresser, for example:

require("expresser").settings.general.appTitle = "My App".

More info can be found at https://expresser.codeplex.com/wikipage?title=Settings

Modules

Below you'll find important information about each of Expresser modules. Detailed documentation is extracted from the source code and available under the /docs/ folder.

App

  • Pre-configured Express server ready to run on most PaaS providers.
  • Built-in support and automatic setup of New Relic (http://newrelic.com) agent.

More info at https://expresser.codeplex.com/wikipage?title=App

Database

  • Supports reading, updating and deleting documents on MongoDB databases.
  • Automatic switching to a failover database in case the main one is down.

More info at https://expresser.codeplex.com/wikipage?title=Database

Firewall

  • Automatic protection against SQLi, CSS and LFI attacks.
  • Automatic IP blacklisting.
  • Works on HTTP and Socket connections.

More info at https://expresser.codeplex.com/wikipage?title=Firewall

Imaging

  • Wrapper for ImageMagick.
  • Easy conversion between multiple image types.

More info at https://expresser.codeplex.com/wikipage?title=Imaging

Logger

More info at https://expresser.codeplex.com/wikipage?title=Logger

Mail

  • Supports sending emails via SMTP using optional authentication and SSL/TLS.
  • Supports email templates and keywords.
  • Automatic switching to a failover SMTP server in case the main one fails to send.

More info at https://expresser.codeplex.com/wikipage?title=Mail

Sockets

  • Wrapper for the Socket.IO module.
  • Works even if your server does not support websockets.

More info at https://expresser.codeplex.com/wikipage?title=Sockets

Twitter

  • Supports updating status and reading direct messages from Twitter.
  • The Twitter module is not fully functional yet!!!

More info at https://expresser.codeplex.com/wikipage?title=Twitter

Utils

  • General utilities and helper methods.

More info at https://expresser.codeplex.com/wikipage?title=Utils

Running on PaaS

Deploying your Expresser based app to AppFog, Heroku, OpenShift and possibly any other PaaS is dead simple. No need to configure anything - just leave the Settings.app.paas setting on, and it will automatically set settings from environment variables.

Common questions and answers

Where is this project hosted?

The official project page is at CodePlex: http://expresser.codeplex.com. But as we know there are lots of people who prefer GitHub, there's a remote repo at GitHub as well: https://github.com/igoramadas/expresser.

How can I change specific settings without touching the settings.coffee file?

Create a settings.json file with the specific keys and values that you want to override. For example:

{
    "general": {
        "appTitle": "My App"
    },
    "app": {
        "paas": false,
        "port": 1234
    }
}

You can also change settings programatically:

var expresser = require("expresser");
expresser.settings.general.appTitle = "MyApp";

I have a problem!

Can't find what you're looking for? Need help? Then post on the Issue Tracker: http://expresser.codeplex.com/workitem/list/basic

npm loves you