<commit_before>## Introduction

Feathers is a light weight web application framework that rides on top of [Express](http://expressjs.com), one of the most popular web frameworks for [NodeJS](http://nodejs.org/). It makes it easy to create RESTful web services and real-time applications using SocketIO and several other NodeJS real-time libraries.

If you are not familiar with Express head over to the [Express Guides](http://expressjs.com/guide.html) to get an idea. Feathers works the exact same way except that `var app = require('express')();` is replaced with `var app = require('feathers')()`. The most important concept that Feathers adds to Express middleware is data oriented **Services**. How services work and the API additional to the available [Express API](http://expressjs.com/api.html) is outlined in the following documentation.

## Configuration

### REST

In almost every case you want to exposes your services through a RESTful JSON interface. This can be achieved by calling `app.configure(feathers.rest())`. Note that you will have to provide your own body parser middleware like the standard [Express 4 body-parser](https://github.com/expressjs/body-parser) to make REST `.create`, `.update` and `.patch` calls pass the parsed data.

To set service parameters in a middleware, just attach it to the `req.feathers` object which will become the params for any resulting service call. It is also possible to use URL parameters for REST API calls which will also be added to the params object:

```js
var bodyParser = require('body-parser');

app.configure(feathers.rest())
  .use(bodyParser())
  .use(function(req, res) {
    req.feathers.data = 'Hello world';
  });
<commit_msg>Fix documentation error pointed out in #87<commit_after>## Introduction

Feathers is a light weight web application framework that rides on top of [Express](http://expressjs.com), one of the most popular web frameworks for [NodeJS](http://nodejs.org/). It makes it easy to create RESTful web services and real-time applications using SocketIO and several other NodeJS real-time libraries.

If you are not familiar with Express head over to the [Express Guides](http://expressjs.com/guide.html) to get an idea. Feathers works the exact same way except that `var app = require('express')();` is replaced with `var app = require('feathers')()`. The most important concept that Feathers adds to Express middleware is data oriented **Services**. How services work and the API additional to the available [Express API](http://expressjs.com/api.html) is outlined in the following documentation.

## Configuration

### REST

In almost every case you want to exposes your services through a RESTful JSON interface. This can be achieved by calling `app.configure(feathers.rest())`. Note that you will have to provide your own body parser middleware like the standard [Express 4 body-parser](https://github.com/expressjs/body-parser) to make REST `.create`, `.update` and `.patch` calls pass the parsed data.

To set service parameters in a middleware, just attach it to the `req.feathers` object which will become the params for any resulting service call. It is also possible to use URL parameters for REST API calls which will also be added to the params object:

```js
var bodyParser = require('body-parser');

app.configure(feathers.rest())
  .use(bodyParser())
  .use(function(req, res, next) {
    req.feathers.data = 'Hello world';
    next();
  });

{'fraction_non_alphanumeric': 0.09080359733101248, 'fraction_numerical': 0.0011604293588627793, 'mean_word_length': 4.6991735537190085, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '587538', 'n_tokens_mistral': 885, 'n_tokens_neox': 875, 'n_words': 450}