1.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. const tBodyEle = document.getElementById('listBody');
  2. // fetch 的 第一个参数 为 请求的地址;第二个参数为 请求的配置对象
  3. fetch('http://localhost:3000/users', {
  4. method: 'get', // 设置请求的方法
  5. })
  6. .then((res) => {
  7. // 请求成功
  8. // 这里看一下成功的值 是什么
  9. // console.log(res);
  10. // res 是 一个 Response对象 我们不能直接处理
  11. // 需要使用res.json()方法将响应对象的数据 转换成 js对象才可以
  12. return res.json();
  13. })
  14. .then(({ code, msg, data }) => {
  15. // 在这个then方法中 去接收 res.json()的结果
  16. // console.log(data);
  17. console.log(msg);
  18. // 2 校验数据的正确性,只有code == 200时 数据是正确的
  19. if (code !== 200) {
  20. return;
  21. }
  22. var tr, td;
  23. data.forEach((user) => {
  24. // 每循环一次,就新建一个tr DOM对象
  25. tr = document.createElement('tr');
  26. // 字符串拼接,在原生js操作dom中会频繁发生,但是存在一个问题 就是代码可读性 太低
  27. // 因此 在ES6 对字符串进行了一个扩展。叫做 模板字符串。
  28. // 模板字符串 中 可以 换行;也可以通过${}语法 将外部表达式的值 嵌入字符串中的指定位置
  29. td = `
  30. <td>
  31. <img class="avatar" src="${user.avatar}" alt="avatar" />
  32. </td>
  33. <td>${user.name}</td>
  34. <td>${user.password}</td>
  35. <td>${user.age}</td>
  36. <td>${user.sex === '0' ? '女' : '男'}</td>
  37. `; // 这就是模板字符串
  38. tr.innerHTML = td;
  39. // 下次循环开始前,记得将新建tr添加给tbody元素
  40. tBodyEle.append(tr);
  41. });
  42. })
  43. .catch((reason) => {
  44. // 当请求失败的时候,输出一下失败的原因
  45. console.log(reason);
  46. });
  47. // xhr.onload = function () {
  48. // let res = xhr.responseText;
  49. // // console.log(res);
  50. // // res 就是 服务器端 响应给我们的 json字符串类型数据
  51. // // 接下来处理 数据
  52. // // 就是使用table表格来展示这些数据
  53. // //TOOD 将数据 转换成 tr,添加到tbody中
  54. // // 1 将json数据 -> js对象
  55. // // let data = JSON.parse(res);
  56. // let { code, msg, data } = JSON.parse(res);
  57. // console.log(msg);
  58. // // 2 校验数据的正确性,只有code == 200时 数据是正确的
  59. // if (code !== 200) {
  60. // return;
  61. // }
  62. // // 3 数据是正确的
  63. // // data 变量 存的就是所有用户信息对象 是一个数组
  64. // var tr, td;
  65. // data.forEach((user) => {
  66. // // 每循环一次,就新建一个tr DOM对象
  67. // tr = document.createElement('tr');
  68. // td =
  69. // '<td><img class="avatar" src="' +
  70. // user.avatar +
  71. // '" alt="avatar" /></td>' +
  72. // '<td>' +
  73. // user.name +
  74. // '</td>' +
  75. // '<td>' +
  76. // user.password +
  77. // '</td>' +
  78. // '<td>' +
  79. // user.age +
  80. // '</td>' +
  81. // '<td>' +
  82. // (user.sex === '0' ? '女' : '男') +
  83. // '</td>';
  84. // // console.log(td);
  85. // tr.innerHTML = td;
  86. // // 下次循环开始前,记得将新建tr添加给tbody元素
  87. // tBodyEle.append(tr);
  88. // });
  89. // // console.log(`output->data`, data);
  90. // };
  91. // xhr.send();