收藏
回答

小白想问一下怎么把变量添加到数据库的字段?

最下面的功能可以把 message date和servedate写入数据库

但是author不行,会报错ReferenceError: queryResultname is not defined

有大大能告诉我一下怎么处理吗??

尝试写了 let queryResultname = "", 直接就写入空值了,但实际上是有数据的

是从云端查询的当前用户的名字


// 设置数据库
const db = wx.cloud.database()
const messagedate = JSON.stringify(new Date()+0).replace("\"","").replace("\"","").replace(" GMT+0800 (中国标准时间)0","")
let that = this
let usermessage = ""
let _openid = ""
Page({
  data:{
    user_info:[],
    messageboard:[],
    usermessage:"",
    messagedate:"",
    queryResultname:"",
    queryResultmessage: [],
  },
  onLoadfunction () {
    // 从云端获取个人信息
    wx.cloud.callFunction({
      name"getopenid",
       success(res){
      // 授权用户的openid
      let userid = res.result.openid
      }
     })
     // 查询当前用户名字
    db.collection('user_info').where({
      _openidthis.data.userid
    })
    .get({
      successres => {
        this.setData({
          queryResultname: res.data[0].name
        })
        console.log('[数据库] [查询记录] 成功: ', res.data[0].name)
      },
      failerr => {
        wx.showToast({
          icon'none',
          title'查询记录失败'
        })
        console.error('[数据库] [查询记录] 失败:', err)
      }
    })
    // 获取留言
    db.collection('messageboard').orderBy('servedate','desc').get({
    success:res=>{
      this.setData({
        queryResultmessage: res.data
      })
      console.log('留言获取成功',res.data)
    },fail:res=>{
      console.log('留言获取失败',res)
    }
    })
  },
  gainmessage(e){
    usermessage=e.detail.value
    console.log("获取输入的值",usermessage)
  },
  
  addmessage:function(){ 
    db.collection("messageboard").add({
      data:{
        message:usermessage,
        date:messagedate,
        servedate:db.serverDate(),
        author:queryResultname,
      }
    })
  },
})
回答关注问题邀请回答
收藏

2 个回答

  • 张向航
    张向航
    2021-02-13

    解决了,最后

    author:queryResultname

    修改成 author:this.data.Resultname就可以了


    2021-02-13
    有用 1
    回复
  • 跨商通
    跨商通
    2021-02-13

    看上去象是JS异步问题。

    2021-02-13
    有用
    回复
登录 后发表内容
问题标签