这是我参与11月更文应战的第4天,活动详情检查:2021最终一次更文应战

【每日一点事】

  天冷了,枯燥了,嘴唇裂了,几块钱一瓶的维生素b6也有可治唇干裂的作用。
snow.jpg

一、介绍

腾讯官方文档教程参阅:cloud.tencent.com/document/pr…

准备工作

一个微信号:注册并登录腾讯云

二、操作流程

登录腾讯云后,找到云开发 CloudBase——》创立项目(空模板)
1 创立项目(空模板).gif
——》敞开匿名登录并上传index云函数
2 敞开匿名登录且上传index云函数.gif

// index云函数代码
//替换 envId 为您的环境ID,如果您的环境归于上海地域,请将 region 信息改为"ap-shanghai"
const envId = "envId"
exports.main = async (event) => {
// 网页JS代码
  const script =
      `
      var envId = "${envId}"
      class FunctionQuickStarter {
          constructor() {
      // 绑定 dom
              this.addNameInput = document.getElementById("add-name")
              this.deleteNameInput = document.getElementById("delete-name")
              this.addAgeInput = document.getElementById("add-age")
              this.addAvatarInput = document.getElementById("add-avatar")
              this.addDataButton = document.getElementById("add-button")
              this.infoBox = document.getElementById("info-box")
      // 绑定 dom listener
              this.addAvatarInput.addEventListener("change", this.addAvatar.bind(this), false)
              this.addDataButton.addEventListener("click", this.addData.bind(this), false)
      // 初始化 CloudBase
      // 如果您的环境归于上海地域,请将 region 信息改为"ap-shanghai"
              this.app = cloudbase.init({
                  env: envId,
                  region:"ap-guangzhou"
              })
              this.setButtonStatus(true)
              this.signIn()
          }
          setButtonStatus(status) {
              this.addDataButton.disabled = status
              if (!status) {
                  this.queryData()
              }
          }
      // 匿名登录
          signIn() {
              var auth = this.app.auth({
                  persistence: "local"
              })
              if(!auth.hasLoginState()) {
                  auth.anonymousAuthProvider().signIn()
                      .then(() => {
                          this.setButtonStatus(false)
                      })
              } else {
                  this.setButtonStatus(false)
              }
          }
      // 录入信息
          addData(e) {
              e.stopPropagation()
              e.preventDefault()
              var name = this.addNameInput.value
              var age = parseFloat(this.addAgeInput.value)
              var coll = this.app.database().collection("test_db")
              if (!name) {
                  window.alert(
                      "姓名不能为空!"
                  )
                  return
              }
              if (!(age > 0 && age < 200)) {
                  window.alert(
                      "年纪需要在 0 ~ 200 之间"
                  )
                  return
              }
              if (!this.avatarUrl) {
                  window.alert(
                      "头像不能为空!"
                  )
                  return
              }
              this.setButtonStatus(true)
              coll.add({
                  name: name,
                  age: age,
                  avatar: this.avatarUrl
              }).then((res) => {
                  if (res.code) {
                      console.log("数据库新增失利", res)
      // 打印数据库新增失利的信息
                      window.alert(
                          "成果录入失利: [code=" + res.code + "] [message=" + res.message + "]"
                      )
                  } else {
                      console.log("数据库新增成功", res)
                      this.avatarUrl = ""
                      window.alert(
                          "成果录入成功!"
                      )
                  }
                  this.setButtonStatus(false)
              })
          }
      // 上传头像
          addAvatar(e) {
              e.stopPropagation()
              e.preventDefault()
              var file = e.target.files[0]
              var name = file.name
              this.app.uploadFile({
                  cloudPath: (new Date()).valueOf() + "-" + name,
                  filePath: file
              }).then(res => {
      // 云文件ID
                  var fileID = res.fileID
      // 经过云文件ID 获取 云文件链接
                  this.app.getTempFileURL({
                      fileList: [fileID]
                  }).then(res2 => {
                      var fileObj = res2.fileList[0]
                      var url = fileObj.tempFileURL
                      this.avatarUrl = url
                  })
              })
          }
      // 查询信息
          queryData() {
              var coll = this.app.database().collection("test_db")
              coll.where({}).get().then((res) => {
                  if (res.code) {
                      console.log("数据库查询失利", res)
      // 打印数据库查询失利的信息
                      window.alert(
                          "成果查询失利: [code=" + res.code + "] [message=" + res.message + "]"
                      )
                  } else {
                      console.log("数据库查询成功", res)
      // 打印数据库查询成果
                      var html =
                          "<tr>" +
                          "<th>姓名</th>" +
                          "<th>年纪</th>" +
                          "<th>头像</th>" +
                          "</tr>"
                      if (res.data.length > 0) {
                          res.data.forEach((data) => {
                              html +=
                                  "<tr>" +
                                  "<td>" + data.name + "</td>" +
                                  "<td>" + data.age + "</td>" +
                                  "<td><img src='" + data.avatar + "'></td>" +
                                  "</tr>"
                          })
                          this.infoBox.innerHTML =
                              "<table>" +
                              html +
                              "</table>"
                      } else {
                          window.alert(
                              "查无此人!"
                          )
                      }
                  }
              })
          }
      }
      window.addEventListener("load", function() {
          window.app = new FunctionQuickStarter()
      })
      `
// 网页HTML代码
  const body =
      `
      <!doctype html>
          <html lang="zh">
          <head>
              <meta charset="utf-8">
              <script src="https://imgcache.qq.com/qcloud/cloudbase-js-sdk/1.4.1/cloudbase.full.js"></script>
              <script type="text/javascript">${script}</script>
          </head>
          <body>
          <header>
              <h1>学生信息系统</h1>
          </header>
          <div>
              <h2>录入信息</h2>
              <form>
                  姓名:
                  <input id="add-name">
                  <br><br>
                  年纪:
                  <input id="add-age">
                  <br><br>
                  头像:
                  <input type="file" id="add-avatar" accept=".jpg, .jpeg, .png"/>
                  <br><br>
                  <button id="add-button">录入</button>
                  <br><br>
              </form>
              <h2>信息列表</h2>
              <div id="info-box"></div>
          </div>
          </body>
          </html>     
      `
            return {
                    statusCode: 200,
                    headers: {
                            'content-type': 'text/html'
                    },
                    body: body
            }
}

仿制环境ID
3 仿制环境ID.gif修正index云函数的环境ID和匹配的地址ID(选择广州环境无须修正地址ID)
4 修正index云函数的环境ID和匹配的地址ID(选择广州环境无须修正地址ID).gif发动拜访服务(新建触发途径)
5 发动拜访服务(新建触发途径).gif创立数据库(且设置可操作)
6 创立数据库(且设置可操作).gif拜访网站(完结)
7 拜访网站(完结).gif
权限修正
修正权限只能展现,不能进行增加

流程:云开发 CloudBase控制台——》(基础服务)数据库——》test_db(调集名称)——》权限设置——》一切用户可读,仅管理员可读写
9 额外操作(只能展现,不能增加).gif

三、成果展现

如图:
8 成果展现.gif
到这儿,你就完结了一个小Demo的信息系统了,信任有了这个模板Demo,你可以改内容,改结构,改调集(云数据库里的表),改想法等等。总算,你可以设计出你的小图库,小资源库等等…

【最终】

  感谢你看到最终,如果你持有不同的看法,欢迎你在文章下方进行留言、评论。

我是南边者,一个热爱计算机更热爱祖国的南边人。