Skip to content

Commit

Permalink
CORS handling is delegated to 'cors' module
Browse files Browse the repository at this point in the history
  • Loading branch information
cedx committed Dec 15, 2014
1 parent d7a1fad commit 78fd234
Show file tree
Hide file tree
Showing 6 changed files with 49 additions and 48 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# Changelog
This file contains highlights of what changes on each version of the [Akismet.js](https://www.npmjs.org/package/akismet-js) library.

#### Version 0.3.4
- CORS headers handling delegated to [`cors`](https://www.npmjs.com/package/cors) module.

#### Version 0.3.3
- Updated the package dependencies.

Expand Down
26 changes: 8 additions & 18 deletions lib/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
// Module dependencies.
var bodyParser=require('body-parser');
var enums=require('./enums');
var cors=require('cors');
var express=require('express');
var http=require('http');
var https=require('https');
Expand Down Expand Up @@ -221,23 +222,6 @@ Server.prototype.verifyKey=function(req, res) {
});
};

/**
* Adds [CORS](http://www.w3.org/TR/cors) headers to the response.
* @method _addCORSHeaders
* @param {express.Request} req The request sent by a client.
* @param {express.Response} res The response sent by the server.
* @param {Function} next The callback used to pass the request off to the next middleware.
* @static
* @private
*/
Server._addCORSHeaders=function(req, res, next) {
res.set('access-control-allow-headers', util.format('%s, %s', enums.HTTPHeaders.X_REQUESTED_WITH, enums.HTTPHeaders.X_USER_AGENT));
res.set('access-control-allow-methods', 'GET, OPTIONS, POST');
res.set('access-control-allow-origin', '*');
res.set('access-control-expose-headers', enums.HTTPHeaders.X_AKISMET_DEBUG_HELP);
next();
};

/**
* Processes the specified request body.
* @method _processRequest
Expand Down Expand Up @@ -273,8 +257,14 @@ Server._processRequest=function(req, res, next) {
* @private
*/
Server.prototype._registerMiddleware=function() {
this._express.use(cors({
allowedHeaders: [ enums.HTTPHeaders.X_REQUESTED_WITH, enums.HTTPHeaders.X_USER_AGENT ],
exposedHeaders: [ enums.HTTPHeaders.X_AKISMET_DEBUG_HELP ],
methods: [ 'GET', 'POST' ],
origin: '*'
}));

this._express.use(bodyParser.urlencoded({ extended: true }));
this._express.use(Server._addCORSHeaders);
this._express.use(Server._processRequest);
};

Expand Down
17 changes: 9 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,25 +6,26 @@
"license": "MIT",
"main": "./index",
"name": "akismet-js",
"version": "0.3.3",
"version": "0.3.4",
"bin": {
"akismet": "./bin/cli.js"
},
"dependencies": {
"body-parser": "^1.9.2",
"commander": "^2.5.0",
"express": "^4.10.2",
"body-parser": "^1.10.0",
"commander": "^2.5.1",
"cors": "^2.5.2",
"express": "^4.10.6",
"superagent": "^0.21.0"
},
"devDependencies": {
"archiver": "^0.12.0",
"browserify": "^6.3.2",
"archiver": "^0.13.0",
"browserify": "^7.0.1",
"david": "^5.0.0",
"docgen-js": "^0.1.0",
"docgen-js": "^0.0.1",
"jshint": "^2.5.10",
"mocha": "^2.0.1",
"shelljs": "^0.3.0",
"uglify-js": "^2.4.15"
"uglify-js": "^2.4.16"
},
"engines": {
"node": ">=0.10.0"
Expand Down
4 changes: 2 additions & 2 deletions www/js/mocha.js

Large diffs are not rendered by default.

43 changes: 25 additions & 18 deletions www/js/tests.js

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions www/js/tests.min.js

Large diffs are not rendered by default.

0 comments on commit 78fd234

Please sign in to comment.