weather.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. const express = require('express');
  2. const request = require('superagent');
  3. const utils = require('../utils/utils');
  4. const router = express.Router();
  5. const base = 'http://jisutqybmf.market.alicloudapi.com/weather/query';
  6. const APPCODE = process.env.APPCODE ;
  7. router.get('/*', function(req, res, next) {
  8. getWeather(req, res, next);
  9. });
  10. router.post('/*', function(req, res, next) {
  11. getWeather(req, res, next);
  12. });
  13. let getWeather = (req, res, next) => {
  14. let params = utils.convert(req,res,next,base);
  15. let config = params[0];
  16. let protocol = params[1];
  17. let host = params[2];
  18. let cb = params[3];
  19. let _params = params[4];
  20. let output = {
  21. data: {},
  22. status: {
  23. code: -1,
  24. message: '请确定你的请求方式像这样:/weather?city=番禺'
  25. }
  26. };
  27. let referer = config['headers']['referer']
  28. let origin = config['headers']['origin']
  29. if((referer && referer.indexOf('180.169.17.10')>-1) || (origin && origin.indexOf('180.169.17.10')>-1)){
  30. output = {
  31. status: {
  32. code: -2,
  33. message: '很抱歉,由于您的使用量过大,现已停止您的数据请求,如需商务合作请联系hi@big.moe'
  34. }
  35. }
  36. cb && res.jsonp(output) || res.send(output);
  37. return
  38. }
  39. if(_params['city']){
  40. config['headers'] = {
  41. "Host":"jisutqybmf.market.alicloudapi.com",
  42. "X-Ca-Timestamp":Date.now(),
  43. "gateway_channel":"http",
  44. "X-Ca-Request-Mode":"debug",
  45. "X-Ca-Key":"24605515",
  46. "X-Ca-Stage":"RELEASE",
  47. "Content-Type":"application/json; charset=utf-8",
  48. "Authorization":`APPCODE ${APPCODE}`
  49. }
  50. //config['gzip'] = '';
  51. utils.createServer(config).then(ret => {
  52. cb && res.jsonp(ret) || res.send(ret);
  53. }).catch(ex => {
  54. output = {
  55. status: {
  56. code: -2,
  57. message: Object.keys(ex).length>0 ? ex : 'unknow error, please checked your city name'
  58. }
  59. }
  60. console.log(`cb:${cb}`)
  61. cb && res.jsonp(output) || res.json(output);
  62. });
  63. }else{
  64. cb && res.jsonp(output) || res.json(output);
  65. }
  66. }
  67. module.exports = router;