mobile.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. var express = require('express');
  2. var request = require('request');
  3. var router = express.Router();
  4. // 创建 application/x-www-form-urlencoded 编码解析
  5. var bodyParser = require('body-parser');
  6. var urlencodedParser = bodyParser.urlencoded({ extended: false });
  7. var key = "9f719ab7014f2cbdc7b394edf70d0f76";
  8. var url = 'http://apis.juhe.cn/mobile/get?key=' + key;
  9. var type = '';
  10. var callback = '';
  11. router.get('/', function(req, res, next) {
  12. url += '&phone=' + req.query.phone;
  13. type = req.query.type === 'xml' ? 'xml' : '';
  14. callback = req.query.callback;
  15. getMobile(req, res, next);
  16. });
  17. router.post('/', urlencodedParser, function(req, res, next) {
  18. url += '&phone=' + req.body.phone;
  19. type = req.body.type === 'xml' ? 'xml' : '';
  20. callback = req.body.callback;
  21. getMobile(req, res, next);
  22. });
  23. function getMobile(req, res, next) {
  24. url += !!type ? '&dtype=' + type : '';
  25. request(url, function(err, response, body) {
  26. if (!type) {
  27. body = JSON.parse(body);
  28. if (!err && response.statusCode === 200 && body.error_code === 0) {
  29. var output = {
  30. data: body.result.data || body.result,
  31. status: {
  32. code: 200,
  33. message: ''
  34. }
  35. };
  36. if (callback) {
  37. return res.jsonp(output);
  38. } else {
  39. return res.json(output);
  40. }
  41. } else {
  42. var error = {
  43. code: -1,
  44. message: body.reason
  45. };
  46. res.json(error);
  47. }
  48. } else {
  49. res.send(body);
  50. }
  51. });
  52. }
  53. module.exports = router;