-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor: use async function and support koa@2 #4
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -11,6 +11,6 @@ install: | |
test_script: | ||
- node --version | ||
- npm --version | ||
- npm run ci | ||
- npm run test | ||
|
||
build: off |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,18 +8,18 @@ module.exports = options => { | |
options = options || {}; | ||
options.allowedMethods = options.allowedMethods || [ 'POST' ]; | ||
|
||
return function* overrideMethod(next) { | ||
const orginalMethod = this.request.method; | ||
if (options.allowedMethods.indexOf(orginalMethod) === -1) return yield next; | ||
return function overrideMethod(ctx, next) { | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. arrow function ? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. arrow function 就丢函数名了 There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ok |
||
const orginalMethod = ctx.request.method; | ||
if (options.allowedMethods.indexOf(orginalMethod) === -1) return next(); | ||
|
||
let method; | ||
// body support | ||
const body = this.request.body; | ||
const body = ctx.request.body; | ||
if (body && body._method) { | ||
method = body._method.toUpperCase(); | ||
} else { | ||
// header support | ||
const header = this.get('x-http-method-override'); | ||
const header = ctx.get('x-http-method-override'); | ||
if (header) { | ||
method = header.toUpperCase(); | ||
} | ||
|
@@ -30,11 +30,11 @@ module.exports = options => { | |
// if you want to support other methods, | ||
// just create your own utility! | ||
if (methods.indexOf(method) === -1) { | ||
this.throw(400, `invalid overriden method: "${method}"`); | ||
ctx.throw(400, `invalid overriden method: "${method}"`); | ||
} | ||
this.request.method = method; | ||
ctx.request.method = method; | ||
} | ||
|
||
yield next; | ||
return next(); | ||
}; | ||
}; |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,7 +7,7 @@ | |
"index.js" | ||
], | ||
"scripts": { | ||
"test": "mocha -r co-mocha -R spec -t 5000 test/*.test.js", | ||
"test": "mocha -R spec -t 5000 test/*.test.js", | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 用 egg-bin 不? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 用 egg-bin 吧,方便以后统一升级。 |
||
"cov": "nyc -r text-summary -r lcov npm test", | ||
"lint": "eslint test *.js", | ||
"ci": "npm run lint && npm run cov", | ||
|
@@ -18,12 +18,11 @@ | |
}, | ||
"devDependencies": { | ||
"autod": "*", | ||
"co-mocha": "^1.2.0", | ||
"egg-ci": "^1.7.0", | ||
"eslint": "^4.0.0", | ||
"eslint-config-egg": "^4.2.1", | ||
"koa": "1", | ||
"koa-body-parser": "1", | ||
"koa": "2", | ||
"koa-bodyparser": "4", | ||
"mocha": "*", | ||
"nyc": "^11.0.2", | ||
"supertest": "3" | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
.... 这个库名不会坑死人么
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
无所谓了,koa-bodyparser 是我们维护的,body-parser 估计是最早占了坑了