api.js 2.7 KB

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