feat: enable maxrequests middleware (#1003)

This commit is contained in:
fengmk2
2016-07-26 18:32:33 +08:00
committed by GitHub
parent b0f0bc0331
commit ea3beceef7
5 changed files with 17 additions and 63 deletions

View File

@@ -4,14 +4,7 @@ TIMEOUT = 30000
MOCHA_OPTS = MOCHA_OPTS =
DB = sqlite DB = sqlite
install: jshint:
@npm install --build-from-source --registry=https://registry.npm.taobao.org \
--disturl=https://npm.taobao.org/mirrors/node
install-production production:
@NODE_ENV=production $(MAKE) install
jshint: install
@node_modules/.bin/jshint . @node_modules/.bin/jshint .
init-database: init-database:
@@ -25,7 +18,7 @@ init-pg:
@psql -c 'DROP DATABASE IF EXISTS cnpmjs_test;' @psql -c 'DROP DATABASE IF EXISTS cnpmjs_test;'
@psql -c 'CREATE DATABASE cnpmjs_test;' @psql -c 'CREATE DATABASE cnpmjs_test;'
test: install init-database test: init-database
@NODE_ENV=test DB=${DB} node_modules/.bin/mocha \ @NODE_ENV=test DB=${DB} node_modules/.bin/mocha \
--reporter $(REPORTER) \ --reporter $(REPORTER) \
--timeout $(TIMEOUT) \ --timeout $(TIMEOUT) \
@@ -47,7 +40,7 @@ test-pg: init-pg
test-all: test-sqlite test-mysql test-all: test-sqlite test-mysql
test-cov cov: install init-database test-cov cov: init-database
@NODE_ENV=test DB=${DB} node \ @NODE_ENV=test DB=${DB} node \
node_modules/.bin/istanbul cover \ node_modules/.bin/istanbul cover \
node_modules/.bin/_mocha \ node_modules/.bin/_mocha \
@@ -67,7 +60,7 @@ test-cov-sqlite:
test-cov-mysql: init-mysql test-cov-mysql: init-mysql
@$(MAKE) test-cov DB=mysql @$(MAKE) test-cov DB=mysql
test-travis: install init-database test-travis: init-database
@NODE_ENV=test DB=${DB} CNPM_SOURCE_NPM=https://registry.npmjs.com CNPM_SOURCE_NPM_ISCNPM=false \ @NODE_ENV=test DB=${DB} CNPM_SOURCE_NPM=https://registry.npmjs.com CNPM_SOURCE_NPM_ISCNPM=false \
node \ node \
node_modules/.bin/istanbul cover \ node_modules/.bin/istanbul cover \
@@ -98,15 +91,14 @@ test-travis-all: jshint test-travis-sqlite test-travis-mysql test-travis-pg
dev: dev:
@NODE_ENV=development node node_modules/.bin/node-dev dispatch.js @NODE_ENV=development node node_modules/.bin/node-dev dispatch.js
contributors: install contributors:
@node_modules/.bin/contributors -f plain -o AUTHORS @node_modules/.bin/contributors -f plain -o AUTHORS
autod: install autod:
@node_modules/.bin/autod -w \ @node_modules/.bin/autod -w \
--prefix "~" \ --prefix "~" \
--exclude public,view,docs,backup,coverage \ --exclude public,view,docs,backup,coverage \
--dep mysql \ --dep mysql \
--keep should,supertest,should-http,chunkstream,mm,pedding --keep should,supertest,should-http,chunkstream,mm,pedding
@$(MAKE) install
.PHONY: test .PHONY: test

View File

@@ -38,6 +38,7 @@
"koa": "^1.2.0", "koa": "^1.2.0",
"koa-limit": "^1.0.2", "koa-limit": "^1.0.2",
"koa-markdown": "^2.0.1", "koa-markdown": "^2.0.1",
"koa-maxrequests": "^1.0.0",
"koa-middlewares": "^2.1.0", "koa-middlewares": "^2.1.0",
"koa-mock": "^1.6.1", "koa-mock": "^1.6.1",
"koa-safe-jsonp": "^0.3.1", "koa-safe-jsonp": "^0.3.1",

View File

@@ -1,19 +1,4 @@
/**! 'use strict';
* cnpmjs.org - servers/registry.js
*
* Copyright(c) cnpmjs.org and other contributors.
* MIT Licensed
*
* Authors:
* dead_horse <dead_horse@qq.com>
* fengmk2 <fengmk2@gmail.com> (http://fengmk2.github.com)
*/
"use strict";
/**
* Module dependencies.
*/
var koa = require('koa'); var koa = require('koa');
var app = module.exports = koa(); var app = module.exports = koa();
@@ -28,25 +13,27 @@ var staticCache = require('../middleware/static');
var notFound = require('../middleware/registry_not_found'); var notFound = require('../middleware/registry_not_found');
var cors = require('kcors'); var cors = require('kcors');
var proxyToNpm = require('../middleware/proxy_to_npm'); var proxyToNpm = require('../middleware/proxy_to_npm');
var maxrequests = require('koa-maxrequests');
app.use(maxrequests());
app.use(block()); app.use(block());
middlewares.jsonp(app); middlewares.jsonp(app);
app.use(middlewares.rt({headerName: 'X-ReadTime'})); app.use(middlewares.rt({ headerName: 'X-ReadTime' }));
app.use(middlewares.rewrite('/favicon.ico', '/favicon.png')); app.use(middlewares.rewrite('/favicon.ico', '/favicon.png'));
app.use(staticCache); app.use(staticCache);
app.keys = ['todokey', config.sessionSecret]; app.keys = ['todokey', config.sessionSecret];
app.proxy = true; app.proxy = true;
app.use(middlewares.bodyParser({jsonLimit: config.jsonLimit})); app.use(middlewares.bodyParser({ jsonLimit: config.jsonLimit }));
app.use(cors({ app.use(cors({
allowMethods: 'GET,HEAD' allowMethods: 'GET,HEAD',
})); }));
app.use(auth()); app.use(auth());
app.use(proxyToNpm()); app.use(proxyToNpm());
app.use(notFound); app.use(notFound);
if (config.enableCompress) { if (config.enableCompress) {
app.use(middlewares.compress({threshold: 150})); app.use(middlewares.compress({ threshold: 150 }));
} }
app.use(middlewares.conditional()); app.use(middlewares.conditional());
app.use(middlewares.etag()); app.use(middlewares.etag());

View File

@@ -1,19 +1,4 @@
/**! 'use strict';
* cnpmjs.org - servers/web.js
*
* Copyright(c) cnpmjs.org and other contributors.
* MIT Licensed
*
* Authors:
* dead_horse <dead_horse@qq.com>
* fengmk2 <m@fengmk2.com> (http://fengmk2.com)
*/
"use strict";
/**
* Module dependencies.
*/
var opensearch = require('../middleware/opensearch'); var opensearch = require('../middleware/opensearch');
var notFound = require('../middleware/web_not_found'); var notFound = require('../middleware/web_not_found');
@@ -32,6 +17,7 @@ var path = require('path');
var http = require('http'); var http = require('http');
var koa = require('koa'); var koa = require('koa');
var fs = require('fs'); var fs = require('fs');
var maxrequests = require('koa-maxrequests');
var app = koa(); var app = koa();
@@ -39,6 +25,7 @@ jsonp(app);
var rootdir = path.dirname(__dirname); var rootdir = path.dirname(__dirname);
app.use(maxrequests());
app.use(block()); app.use(block());
app.use(middlewares.rt({headerName: 'X-ReadTime'})); app.use(middlewares.rt({headerName: 'X-ReadTime'}));
app.use(middlewares.rewrite('/favicon.ico', '/favicon.png')); app.use(middlewares.rewrite('/favicon.ico', '/favicon.png'));

View File

@@ -1,18 +1,5 @@
/**!
* Copyright(c) cnpmjs.org and other contributors.
* MIT Licensed
*
* Authors:
* dead_horse <dead_horse@qq.com>
* fengmk2 <fengmk2@gmail.com> (http://fengmk2.com)
*/
'use strict'; 'use strict';
/**
* Module dependencies.
*/
var graceful = require('graceful'); var graceful = require('graceful');
var registry = require('./servers/registry'); var registry = require('./servers/registry');
var web = require('./servers/web'); var web = require('./servers/web');