|
@@ -4,85 +4,84 @@ var router = express.Router();
|
|
|
// 创建 application/x-www-form-urlencoded 编码解析
|
|
|
var bodyParser = require('body-parser');
|
|
|
var urlencodedParser = bodyParser.urlencoded({ extended: false });
|
|
|
-var key = "64a40e3c55e88cc8cd66a78d030bddce";
|
|
|
+var params = {
|
|
|
+ key: '64a40e3c55e88cc8cd66a78d030bddce',
|
|
|
+ method: 'get',
|
|
|
+ page: 1,
|
|
|
+ pagesize: 1,
|
|
|
+ sort: '',
|
|
|
+ time: '',
|
|
|
+ type: ''
|
|
|
+};
|
|
|
+
|
|
|
/**
|
|
|
* Get 请求
|
|
|
*/
|
|
|
router.get('/', function(req, res, next) {
|
|
|
- var page = req.query.page || 1;
|
|
|
- var pagesize = req.query.pagesize || 1;
|
|
|
- var sort = req.query.sort || '';
|
|
|
- var time = req.query.time || '';
|
|
|
- var type = req.query.type;
|
|
|
- var url = "http://japi.juhe.cn/joke/";
|
|
|
- if (!!type && type === 'text') {
|
|
|
- url += "content/text.from?key=";
|
|
|
- } else {
|
|
|
- url += "img/text.from?key=";
|
|
|
- }
|
|
|
- url += key + "&page=" + page + "&pagesize=" + pagesize;
|
|
|
- if (!!sort && !!time) {
|
|
|
- url += "&sort=" + sort + "&time=" + time;
|
|
|
- url = url.replace(/text/, 'list');
|
|
|
- }
|
|
|
- if (!!sort && !!time) {
|
|
|
- url += "&sort=" + sort + "&time=" + time;
|
|
|
- }
|
|
|
-
|
|
|
- getJOKE(req, res, next, url);
|
|
|
+ params.method = 'get';
|
|
|
+ params.page = req.query.page || 1;
|
|
|
+ params.pagesize = req.query.pagesize || 1;
|
|
|
+ params.sort = req.query.sort || '';
|
|
|
+ params.time = req.query.time || '';
|
|
|
+ params.type = req.query.type;
|
|
|
+ getJOKE(req, res, next);
|
|
|
});
|
|
|
/**
|
|
|
* 随机获取
|
|
|
*/
|
|
|
router.get('/rand', function(req, res, next) {
|
|
|
- var type = req.query.type || 'pic';
|
|
|
- if (type !== 'pic')
|
|
|
- type = null;
|
|
|
- var url = "http://v.juhe.cn/joke/randJoke.php?key=" + key;
|
|
|
- if (!!type) {
|
|
|
- url += "&type=" + type;
|
|
|
- }
|
|
|
- getJOKE(req, res, next, url);
|
|
|
+ params.method = 'get';
|
|
|
+ params.type = req.query.type || 'pic';
|
|
|
+ getJOKE(req, res, next, 'rand');
|
|
|
});
|
|
|
|
|
|
/**
|
|
|
* Post 请求
|
|
|
*/
|
|
|
router.post('/', urlencodedParser, function(req, res, next) {
|
|
|
- var page = req.body.page || 1;
|
|
|
- var pagesize = req.body.pagesize || 1;
|
|
|
- var sort = req.body.sort || '';
|
|
|
- var time = req.body.time || '';
|
|
|
- var type = req.body.type;
|
|
|
- var url = "http://japi.juhe.cn/joke/";
|
|
|
- if (!!type && type === 'text') {
|
|
|
- url += "content/text.from?key=";
|
|
|
- } else {
|
|
|
- url += "img/text.from?key=";
|
|
|
- }
|
|
|
- url += key + "&page=" + page + "&pagesize=" + pagesize;
|
|
|
- if (!!sort && !!time) {
|
|
|
- url += "&sort=" + sort + "&time=" + time;
|
|
|
- url = url.replace(/text/, 'list');
|
|
|
- }
|
|
|
- getJOKE(req, res, next, url);
|
|
|
+ params.method = 'post';
|
|
|
+ params.page = req.body.page || 1;
|
|
|
+ params.pagesize = req.body.pagesize || 1;
|
|
|
+ params.sort = req.body.sort || '';
|
|
|
+ params.time = req.body.time || '';
|
|
|
+ params.type = req.body.type;
|
|
|
+ getJOKE(req, res, next);
|
|
|
});
|
|
|
/**
|
|
|
* 随机获取
|
|
|
*/
|
|
|
router.post('/rand', urlencodedParser, function(req, res, next) {
|
|
|
- var type = req.body.type || 'pic';
|
|
|
- if (type !== 'pic') {
|
|
|
- type = null;
|
|
|
- }
|
|
|
- var url = "http://v.juhe.cn/joke/randJoke.php?key=" + key;
|
|
|
- if (!!type) {
|
|
|
- url += "&type=" + type;
|
|
|
- }
|
|
|
- getJOKE(req, res, next, url);
|
|
|
+ params.method = 'post';
|
|
|
+ params.type = req.body.type || 'pic';
|
|
|
+ getJOKE(req, res, next, 'rand');
|
|
|
});
|
|
|
|
|
|
-function getJOKE(req, res, next, url) {
|
|
|
+/**
|
|
|
+ * 统一的请求
|
|
|
+ */
|
|
|
+function getJOKE(req, res, next, op) {
|
|
|
+ var url = '';
|
|
|
+ if (!!op && op === 'rand') {
|
|
|
+ if (params.type !== 'pic') {
|
|
|
+ params.type = null;
|
|
|
+ }
|
|
|
+ url = "http://v.juhe.cn/joke/randJoke.php?key=" + params.key;
|
|
|
+ if (!!params.type) {
|
|
|
+ url += "&type=" + params.type;
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ url = "http://japi.juhe.cn/joke/";
|
|
|
+ if (!!params.type && params.type === 'text') {
|
|
|
+ url += "content/text.from?key=";
|
|
|
+ } else {
|
|
|
+ url += "img/text.from?key=";
|
|
|
+ }
|
|
|
+ url += params.key + "&page=" + params.page + "&pagesize=" + params.pagesize;
|
|
|
+ if (!!params.sort && !!params.time) {
|
|
|
+ url += "&sort=" + params.sort + "&time=" + params.time;
|
|
|
+ url = url.replace(/text/, 'list');
|
|
|
+ }
|
|
|
+ }
|
|
|
request(url, function(err, response, body) {
|
|
|
body = JSON.parse(body);
|
|
|
if (!err && response.statusCode === 200 && body.error_code === 0) {
|
|
@@ -96,11 +95,11 @@ function getJOKE(req, res, next, url) {
|
|
|
if (req.query.callback) {
|
|
|
return res.jsonp(output);
|
|
|
} else {
|
|
|
- return res.send(output);
|
|
|
+ return res.json(output);
|
|
|
}
|
|
|
} else {
|
|
|
var error = new Error(body.reason);
|
|
|
- error.status = 404;
|
|
|
+ error.status = -1;
|
|
|
next(error);
|
|
|
}
|
|
|
});
|