123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- var express = require('express');
- var request = require('request');
- var router = express.Router();
- // 创建 application/x-www-form-urlencoded 编码解析
- var bodyParser = require('body-parser');
- var urlencodedParser = bodyParser.urlencoded({ extended: false });
- var key = "64a40e3c55e88cc8cd66a78d030bddce";
- /**
- * 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);
- });
- /**
- * 随机获取
- */
- 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);
- });
- /**
- * 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);
- });
- /**
- * 随机获取
- */
- 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);
- });
- function getJOKE(req, res, next, url) {
- request(url, function(err, response, body) {
- body = JSON.parse(body);
- if (!err && response.statusCode === 200 && body.error_code === 0) {
- var output = {
- data: body.result.data || body.result,
- status: {
- code: 200,
- message: ''
- }
- };
- if (req.query.callback) {
- return res.jsonp(output);
- } else {
- return res.send(output);
- }
- } else {
- var error = new Error(body.reason);
- error.status = 404;
- next(error);
- }
- });
- }
- module.exports = router;
|