- 云函数调用云函数还有触发器 执行sendEmail smtp报错?
云函数调用云函数还有触发器 我给设了触发器 执行sendEmail 云函数 这几次都是smtp报错 我要改成什么port还是要怎么改设置? 每次一开云开发平台上传云函数那次都能调用云函数 没错 但只要等触发器就会时不时调用报错 {"errorCode":1,"errorMessage":"user code exception caught","stackTrace":"Error: Connection timeout\n at SMTPConnection._formatError (/var/user/node_modules/nodemailer/lib/smtp-connection/index.js:790:19)\n at SMTPConnection._onError (/var/user/node_modules/nodemailer/lib/smtp-connection/index.js:776:20)\n at Timeout.\u003canonymous\u003e (/var/user/node_modules/nodemailer/lib/smtp-connection/index.js:235:22)\n at listOnTimeout (internal/timers.js:549:17)\n at processTimers (internal/timers.js:492:7)","statusCode":430}” config.json: "triggers": [ { "name": "myTrigger", "type": "timer", "config": "0 */30 7-18 * * * *" } ] index.js: // 云函数入口文件 //触发器规则的时区为 UTC+8 = beijing const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境 const nodemailer = require('nodemailer'); // 创建一个SMTP客户端对象 const transporter = nodemailer.createTransport({ port: 465, secure: true, // use TLS service: 'gmail', auth: { user: 'xxx@gmail.com', pass: 'xxxx' } }); // 云函数入口函数 exports.main = async(event, context) => { const res_orders = await cloud.callFunction({ //调用云函数getOrders name: "getOrders", success(res) { console.log("云函数读取成功", res.result) //that.savaExcel(res.result) }, fail(res) { console.log("读取失败", res) } }) const res_excel = await cloud.callFunction({ //调用云函数excel name: "excel", data: { userdata: res_orders.result }, success(res) { console.log("保存成功", res) //that.getFileUrl(res.result.fileID) //暂时不要传下载文件列表 // get resource ID }, fail(res) { console.log("保存失败", res) } }) //res_excel.result.fileID //拿到链接 const res_URL = await cloud.getTempFileURL({ fileList: [res_excel.result.fileID], success: res => { // get temp file URL console.log("文件下载链接", res.fileList[0].tempFileURL) }, fail: err => { // handle error } }) // 创建一个邮件对象 //let {emaildata} = event let emaildata = res_URL.fileList[0].tempFileURL const mailOptions = { from: 'xxx@gmail.com', to: ' xxx@qq.com', subject: 'xxxx', text: emaildata }; let res = await transporter.sendMail(mailOptions); console.log('execute await') return res; }
2023-08-04 - 云开发 导入json数据库出错?
can not decode array into a D 云开发导入Json到数据库出错: [图片] 文件源是这个: https://raw.githubusercontent.com/modood/Administrative-divisions-of-China/master/dist/pcas-code.json
2020-08-18 - 云开发 体验版真机测试获取不到时间,是NaN,怎么破 ?
获取时间转成北京时间代码 import{utc_beijing} from "../../utils/jumpUtils.js"; const app = getApp() Page({ creatOrder(goodsnum){ //获取当前时间戳 转换成北京时间 let timestamp = formatTime(utc_beijing(app.globalData.serverDate)) ; } }) ../../utils/jumpUtils.js //utc时间转北京时间 const utc_beijing = utc_datetime =>{ // 转为正常的时间格式 年-月-日 时:分:秒 console.log('utc_beijing 中 utc_datetime:'+utc_datetime) //utc_datetime=utc_datetime.replace(/-/g, '/') //console.log('utc_beijing 中 utc_datetime:'+utc_datetime) var T_pos = utc_datetime.indexOf('T'); var Z_pos = utc_datetime.indexOf('Z'); var year_month_day = utc_datetime.substr(0, T_pos); var hour_minute_second = utc_datetime.substr(T_pos + 1, Z_pos - T_pos - 1); var new_datetime = year_month_day + " " + hour_minute_second; // 2017-03-31 08:02:06 console.log('utc_beijing 中 new_datetime:'+new_datetime) console.log('utc_beijing 中 new_datetime after replace:'+new_datetime.replace(/-/g, '/')) console.log('utc_beijing 中 new_datetime Date.parse:'+Date.parse(new_datetime.replace(/-/g, '/')) ) //console.log('utc_beijing 中 new_datetime before replace Date.parse:'+Date.parse(new_datetime.replace(/-/g, '/')) ) // 处理成为时间戳 timestamp = new Date(Date.parse(new_datetime.replace(/-/g, '/'))); timestamp = timestamp.getTime(); timestamp = timestamp / 1000; // 增加8个小时,北京时间比utc时间多八个时区 console.log('cur timestamp is : '+ timestamp) var timestamp = timestamp + 8 * 60 * 60; // 时间戳转为时间 // var beijing_datetime = new Date(parseInt(timestamp) * 1000).toLocaleString().replace(/年|月/g, "-").replace(/日/g, " "); var beijing_datetime = new Date(parseInt(timestamp) * 1000) console.log('utc_beijing 中 beijing_datetime:'+beijing_datetime) return beijing_datetime; // 2017-03-31 16:02:06 } module.exports = { utc_beijing: utc_beijing } formatTime已经转成/了为什么还不行?是转的地方不对吗? const formatTime = date => { const year = date.getFullYear() const month = date.getMonth() + 1 const day = date.getDate() const hour = date.getHours() const minute = date.getMinutes() const second = date.getSeconds() return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':') } 云函数: // 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init({ traceUser: true, env: 'prod-xxx' }) // 云函数入口函数 exports.main = async (event, context) => { return new Date() } app.js //app.js App({ onLaunch: function () { if (!wx.cloud) { console.error('请使用 2.2.3 或以上的基础库以使用云能力') } else { wx.cloud.init({ // env 参数说明: // env 参数决定接下来小程序发起的云开发调用(wx.cloud.xxx)会默认请求到哪个云环境的资源 // 此处请填入环境 ID, 环境 ID 可打开云控制台查看 // 如不填则使用默认环境(第一个创建的环境) env: 'prod-xxx', traceUser: true, }) } this.globalData = { serverDate: this.getserverDate()} }, //获取服务器时间 getserverDate:function(){ wx.cloud.callFunction({ name: 'getdate', success: function (res) { getApp().globalData.serverDate = res.result } }) }, })
2020-08-17 - 小程序发布之后,要看云数据库后台的话怎么办?
现在开发的时候,可以打开云开发控制台来看,但小程序发布之后 这个控制台怎么看在哪看?是在腾讯云网站吗?用什么id登录是企业认证的那个管理员还是开发者的微信? 如果我想导出数据库的话? [图片]
2020-08-16 - 云函数运行的时候为什么占用空间那么大?每调用一次都要使用250M?
就3个云函数没几行代码?为什么调试了一天大概编译60来次吧,就能使用了14G云函数资源,是怎么计算的?是每次每个函数调用的时候使用内存250M吗?但内存会释放的嘛 getdate // 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init({ traceUser: true, env: 'prod-xxxx' }) // 云函数入口函数 exports.main = async (event, context) => { return new Date() } getOpenid // 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init({ traceUser: true, env: 'prod-xxxx' }) // 云函数入口函数 exports.main = async (event, context) => { const wxContext = cloud.getWXContext() return { event, openid: wxContext.OPENID, appid: wxContext.APPID, unionid: wxContext.UNIONID, } } questionPay // 云函数入口文件 const cloud = require('wx-server-sdk'); cloud.init({ traceUser: true, env: cloud.DYNAMIC_CURRENT_ENV }); // 云函数入口函数 exports.main = async (event, context) => { const res = await cloud.cloudPay.unifiedOrder({ body: event.body, // 商品描述,必填 details:event.details,//商品详情 outTradeNo: event.goodsnum, // 商户订单号,必填,不能重复 spbillCreateIp: '127.0.0.1', // 终端IP,必填 subMchId: event.subMchId, // 子商户号,微信支付商户号,必填 totalFee:parseInt(event.payVal), // 总金额,必填 envId: prod-xxxx, // 结果通知回调云函数环境,你自己小程序的坏境id functionName: 'wechatpay', // 结果通知回调云函数名,非必填参数,即使为空,也不影响支付,但是官方文档里写的是必填参数,表示已醉 //nonceStr:event.nonceStr,//第三个坑:官方文档中相关云函数代码没有nonceStr和tradeType,测试的时候会报nonceStr不存在的错,翻看文档才发现这个是必填项,直接粘过来以后还需要加上这两个参数 //tradeType:'JSAPI' }); return res; }; [图片] [图片] size很小啊 为什么 云开发控制台显示用了几G [图片]
2020-08-16 - 云开发测试的时候经常第一次连不上服务器,这是怎么回事?
云上捡了个数据库存了集合school里有schoolName,每次调试,是不是取schoolname 在onshow离onload太近了, 但再点第二次就没问题了,这个要怎么解决?谢谢 view class="page_title">{{schoolName}} view class="page-body"> view class="page-section" wx:for="{{grade}}" wx:key="grade" wx:for-item="i"> view class="page_section_title" >{{i}}运动校服 view class="page_item_wrap"> navigator wx:for="{{class}}" wx:key="class" wx:for-item="j" class="page_img_wrap" url="/pages/clothitem/index?{{school}}&cloth_grade={{i}}&cloth_title={{j}}级{{i}}运动校服"> image mode='aspectFit' src="https://user-images.githubusercontent.com/1105915/89417448-b2515a00-d6fc-11ea-8327-75d8722438c6.jpg"> {{j}}级 Page({ /** * 页面的初始数据 */ data: { schoolName:"", school:{}, grade:[], class:[], }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { const testdb = wx.cloud.database({env: 'test-xxx'}); const _ = testdb.command testdb.collection('school').where({ accessCode: _.eq(parseInt(xxxx)) }) .get({ success: function(res) { //console.log(res.data) wx.setStorageSync('school', res.data) } }) }, /** * 生命周期函数--监听页面显示 */ onShow: function () { const school=wx.getStorageSync('school'); console.log(school); this.setData({ schoolName:school[0].schoolName, grade:school[0].grade, class:school[0].class }) this.scanCart(this); }, [图片]
2020-08-09 - 云函数部署失败?报错 云端没有找到这个函数
想模仿这个实现读取服务器时间,但一直读不到是undefined,应该是函数没部署上去 https://www.jianshu.com/p/37182ab72b19 sdk node 已安装了 Error code : errMsg: "Error: errCode: -404011 cloud function execution error | errMsg: cloud.callFunction:fail requestID , cloud function service error code -501000, error message 找不到对应的FunctionName.; at cloud.callFunction api; " getdate: // 云函数入口文件 const cloud = require('wx-server-sdk') cloud.init({ env: 'test-3aahe'}) // 云函数入口函数 exports.main = async (event, context) => { return new Date() } [图片] 云端没看到这个函数 [图片]
2020-08-06 - ,云函数/HttpAPI/直接写入,用哪个?
在做一个简单小程序商城,主要是要把订单交到数据库里有记录。 我发现如下教程直接调用数据库读写可以实现提交订单,那还需要云函数或者用api写入吗?用云函数和API的好处在哪?是不是更安全? https://www.cnblogs.com/demingblog/p/11914354.html
2020-08-05