如何解决获取表单数据时返回的object Promise?
我用微信小程序云函数制作了一个发邮件的功能 主函数是填写 名字 提交表单到云数据库
我现在是想发送邮件的内容是
姓名为+“名字”+的车主拨打了维修厂的电话
可是一直返回
姓名为[object Promise]的车主拨打了维修厂的电话
我把代码贴一下 希望大佬分析!狠狠的感恩您!
我的Q838618033
(云数据库都配好了 每次也都更新依赖)
云函数:
const cloud = require('wx-server-sdk')
cloud.init()
//引入发送邮件的类库
var nodemailer = require('nodemailer')
// 创建一个SMTP客户端配置
var config = {
host: 'smtp.qq.com', //网易163邮箱 smtp.163.com
port: 465, //网易邮箱端口 25
auth: {
user: '838618033@qq.com', //邮箱账号
}
};
// 创建一个SMTP客户端对象
var transporter = nodemailer.createTransport(config);
// 云函数入口函数
exports.main = async(event, context) => {
// 创建一个邮件对象
var mail = {
// 发件人
from: '来自小程序管理员 <838618033@qq.com>',
// 主题
subject: '有一位车主拨打了维修店电话',
// 收件人
to: '838618033@qq.com',
// text:'姓名为曹博信的车主拨打了维修厂的电话'
// 邮件内容,text或者html格式
text:'姓名为'+cloud.database().collection('userName').get()+'的车主拨打了维修厂的电话'
};
let res = await transporter.sendMail(mail);
return res;
}
主函数:
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
sendEmail(){
wx.cloud.callFunction({
name:"sendEmail",
success(res){
console.log("发送成功",res)
},
fail(res){
console.log("发送失败",res)
}
})
},
// pnum(){
// wx.cloud.callFunction({
// name:"getData"
// })
// .then(res =>{
// console.log('666666666666666666',res)
// this.setData({
// userName:res.result.userName
// })
// })
// .catch(res =>{
// console('444444444444444',res)
// })
// },
formSubmit: function (e) {
wx.redirectTo({
url: '/pages/4s/4s',
})
console.log('form发生了submit事件,携带数据为:', e.detail.value)
var data=e.detail.value
{
wx.showLoading({
title: '数据正在提交中......',
mask:"true"
})
const db = wx.cloud.database()
db.collection('test').add({
data: data,
success: res => {
// 在返回结果中会包含新创建的记录的 _id
this.setData({
counterId: res._id
})
wx.showToast({
title: '请您拨打电话',
})
wx.hideLoading()
console.log('[数据库] [新增记录] 成功,记录 _id: ', res._id)
},
fail: err => {
wx.showToast({
icon: 'none',
title: '新增记录失败'
})
console.error('[数据库] [新增记录] 失败:', err)
}
})
}
},
wxccall:function(e){
wx.redirectTo({
url: '/pages/wxc/wxc',
})
console.log('form发生了submit事件,携带数据为:', e.detail.value)
var data=e.detail.value
{
wx.showLoading({
title: '数据正在提交中......',
mask:"true"
})
const db = wx.cloud.database()
db.collection('test').add({
data: data,
success: res => {
// 在返回结果中会包含新创建的记录的 _id
this.setData({
counterId: res._id
})
wx.showToast({
title: '请您拨打电话',
})
wx.hideLoading()
console.log('[数据库] [新增记录] 成功,记录 _id: ', res._id)
},
fail: err => {
wx.showToast({
icon: 'none',
title: '新增记录失败'
})
console.error('[数据库] [新增记录] 失败:', err)
}
})
}
},
bindDateChange: function (e) {
console.log('picker发送选择改变,携带值为', e.detail.value)
this.setData({
date: e.detail.value
})
},
bindRegionChange: function (e) {
console.log('picker发送选择改变,携带值为', e.detail.value)
this.setData({
region: e.detail.value
})
},
})
姓名 您的爱车坏了,您打算去_修车 4S店(推荐)电话 维修厂电话 获得4S店电话 获得维修厂电话
菜鸟上路三天 还是希望各位大佬各抒己见 多谢指教
collection('userName'), 你确定是一个集合叫userName的东西,.get()取出来可是数组对象
想完整回答,结果是图片,代码换成文字才有人帮你。
简单提示:xxx+await cloud.database()...get()...
text:'姓名为'+(await cloud.database().collection('test').get()).data[0].licenceNo+'的车主拨打了维修厂的电话'
我再