api.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. /* 请求的错误不应该被调用方被catch
  2. 把错误的请求当成请求正常返回的结果
  3. 由调用方根据状态码来判断是否成功 */
  4. var base64 = require('/base64');
  5. const app = getApp();
  6. const config = require('../config/config.js');
  7. /* 服务端IP+端口 */
  8. export const API_URI = config.server_add+':'+config.server_port
  9. /* 调用的请求方法 */
  10. function request(url, requestType, params) {
  11. return new Promise((resolve, reject) => {
  12. wxRequest(url, requestType, params).then(res => {
  13. console.log('[请求地址]:', url,
  14. '\n[请求参数]:', params,
  15. '\n[响应状态]:', res.data.code,
  16. '\n[响应数据]:', res.data.data,
  17. '\n[响应信息]:', res.data.message,
  18. '\n[异常信息]:', res.data.exception )
  19. switch (res.data.code) {
  20. case 200:
  21. break;
  22. case 99999://99999 数据重复 到各自的前台页面去处理 2022年11月14日
  23. break;
  24. case -2:case -4:case 233:
  25. wx.showModal({ title: '提示', content: res.data.message, showCancel: false,
  26. success: function (res) {
  27. wx.navigateTo({
  28. url: '/pages/login/login',
  29. })
  30. }
  31. });
  32. break;
  33. default:
  34. if (res.data.exception){
  35. wx.showModal({
  36. title: '提示', content: res.data.message, cancelText: '日志',
  37. success(res_model) {
  38. if (res_model.cancel) {
  39. wx.showModal({ title: '异常信息', content: res.data.exception, showCancel: false });
  40. }
  41. }
  42. });
  43. }else{
  44. wx.showModal({ title: '提示', content: res.data.message, showCancel: false });
  45. }
  46. break;
  47. }
  48. resolve(res)
  49. }).catch(err => {
  50. resolve({ code: -200, message: "请求失败", data: err });
  51. })
  52. })
  53. }
  54. /* 封装wx.request */
  55. function wxRequest(url, requestType, params) {
  56. return new Promise((resolve, reject) => {
  57. let app = getApp(), header = {
  58. 'content-type': 'application/json'
  59. }
  60. var openId =app.globalData.open_id
  61. if (app.globalData.user) {
  62. app.globalData.user.openId = openId
  63. // 请求的Authorization
  64. header['Authorization'] = "Bearer " + app.globalData.token
  65. }
  66. wx.request({
  67. url: `${API_URI}/${url}`,
  68. header: header,
  69. data: params ? params : null,
  70. method: requestType ? requestType : 'POST',
  71. success: function (res) {
  72. resolve(res);
  73. },
  74. fail: function (err) {
  75. reject(err);
  76. }
  77. })
  78. })
  79. }
  80. /* 暴露方法给外部 */
  81. module.exports = {
  82. request
  83. }