1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| try {
| var defaultCo = require('co');
| } catch (err) {}
|
| module.exports = function wrap(gen, co) {
| if (!co) co = defaultCo.wrap;
|
| var fn = co(gen);
|
| if (gen.length === 4) {
| return function(err, req, res, next) {
| var isParam = !(err instanceof Error);
| var callNextRoute = next;
| if (isParam) {
| callNextRoute = res;
| }
| return fn(err, req, res, next).catch(callNextRoute);
| }
| }
|
| return function(req, res, next) {
| return fn(req, res, next).catch(next);
| };
| };
|
|