-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrouter.js
44 lines (36 loc) · 1.01 KB
/
router.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
'use strict';
var extend = require('extend');
function Map (root, config) {
var router = this;
Object.keys(config).forEach(function (params) {
var route = params.split(' ');
if (route.length !== 2 || ['post', 'get', 'put'].indexOf(route[0]) === -1) {
throw Error('Invalid map config');
}
router[route[0]](route[1], function (req, res, next) {
root[config[params]]({'body': route[0] === 'get' ? req.query : req.body}, function (err, response) {
if (err) {
res.json({'success': false, 'error': err});
} else {
return res.json(extend({}, {'success': true}, response));
}
});
});
});
}
/**
* @title Router
* @overview Router stub
* @returns {*}
*/
var Router = function () {
var router = require('express').Router();
router.use(function (req, res, next) {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept');
next();
});
router.map = Map;
return router;
};
module.exports = Router;