- 使用node-oracledb,已经升级了,版本为什么不对?
错误代码:Error: cloud.callFunction:fail -404011 cloud function execution error. 云函数执行错误 云端堆栈信息(error stack)(requestId 6dcc1dc3-a993-11eb-8fcd-525400dd5846, callid 1619773623070-0.9674995873767567): Error: NJS-069: node-oracledb 5.1.0 requires Node.js 10.16 or later。 可是我的..\pages\test> node -v的结果是v14.16.0,.\test> npm -v的结果是6.14.1,版本是高的。 我在网上https://stackoverflow.com/questions/56630313/problems-compiling-node-js-version-with-electron找了一个,在云函数的package.json里加了 "scripts": { "rebuild": "electron-rebuild -f -w oracledb" }, 还是不对。请问我该怎么办。谢谢!
2021-04-30 - 云数据库POST查询不能使用汉字,数字查询却可以,有什么办法解决吗?
根据这篇文档,我按照示例对云数据库进行了访问。https://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-http-api/database/databaseQuery.html 在我使用数字对数据进行查询的时候,语句如下, {"env":"jinshuiw**","query":"db.collection(\'Refund\').where({'UserTel':'15145005517'}).get()"} 返回的结果是: {"errcode":0,"errmsg":"ok","pager":{"Offset":0,"Limit":10,"Total":1},"data":["{\"Time\":\"2021\/04\/20 16:18:36\",\"UserBank\":\"兴业\",\"UserCnt\":\"1\",\"UserCompany\":\"公司名\",\"UserId\":\"8943213\",\"UserInstead\":\"\",\"UserLine\":\"现场\",\"UserMail\":\"\",\"UserMisson\":\"退款\",\"UserMoney\":\"9804.31\",\"UserName\":\"测试二\",\"UserSame\":\"是\",\"UserTel\":\"15145005517\",\"_id\":\"79550af2607e8e5b0****4307\",\"_openid\":\"oFtuZ5Hb_4*****GTItQ\"}"]} 数据加工取时间: 2021/04/20 16:18:36 这些都是正确的,符合预期。 但是当我使用汉字对数据进行查询的时候,语句如下: {"env":"jinshuiwa***","query":"db.collection(\'Refund\').where({'UserBank':'兴业'}).get()"} 返回的结果是: {"errcode":0,"errmsg":"ok","pager":{"Offset":0,"Limit":10,"Total":0},"data":[]} 没有查到。但是根据上面的信息可知,这个数据库里确实有这条。有什么办法能用汉字查询呢?
2021-04-21 - 云函数代码执行成功,返回success,为什么文件却没有保存上?
以下是云函数的主要代码。 exports.main = async(event, context) => { try { let {userdata} = event.detaildata //1,定义excel表格名 let dataCVS = '明细.xlsx' //2,定义存储数据的 let alldata = []; let row = ['客户名称', '日期','摘要', '科目','借方', '贷方']; //表属性 alldata.push(row); for (let key in userdata) { let arr = []; arr.push(userdata[key].User); arr.push(userdata[key].Date); arr.push(userdata[key].Ex); arr.push(userdata[key].CB); arr.push(userdata[key].Credit); arr.push(userdata[key].Debit); alldata.push(arr) } //3,把数据保存到excel里 var buffer = await xlsx.build([{ name: "mySheetName", data: alldata }]); //4,把excel文件保存到云存储里 return await cloud.uploadFile({ cloudPath: dataCVS, fileContent: buffer, //excel二进制文件 }) } catch (e) { console.error(e) return e } } 以下是JS代码 sendEML:function(){ let that = this console.log(this.data.detaildata) wx.cloud.callFunction({ name: "excel", data: { detaildata:this.data.detaildata, balancedata:this.data.balancedata, }, success(res) { console.log("保存成功", res) that.getFileUrl(res.result.fileID) }, fail(res) { console.log("保存失败", res) } }) }, 返回的结果是保存成功,但是在云开发的文件里找不到。请教这是为什么。谢谢
2021-02-24 - 如何通过本地软件操作云数据库?有示例代码片段吗
在网上找了很多,都是通过小程序访问本地的数据库信息。可是我开发是将数据库保存到云数据库里,本地也没有服务器支持数据的查询。现在的方法是将数据转成JSON,然后上传到云数据库。有没有办法通过JAVA、PYTHON等将数据直接上传到云数据库(或者直接上传JSON也可以)。不然每次都要单独打开微信小程序开发软件上传,有点麻烦。
2021-02-05 - 云函数清空数据再读取excel进数据库没反应?
各位老师,我想请教一下同样的云函数,为什么运行起来有不同的效果。 我想主要实现的功能是将数据库的集合先清除,再通过EXCEL数据导入新的数据。之前试过很多次数据清空但是新数据无法导入,自己都要放弃了,但是不知道怎么回事突然好使了。然后我还需要另外一个导入EXCEL,照着又另起一个云函数,同样的代码还是能清空不能导入。我在检查时误操作重新上传了最开始的那个云函数,结果全都不好使了。麻烦帮我看一下我哪里有问题,谢谢! const cloud = require('wx-server-sdk') cloud.init() var xlsx = require('node-xlsx'); const db = cloud.database() exports.main = async(event, context) => { let { fileID } = event try { return await db.collection('detail').where({ Date: db.command.exists(true) //"checked"数据字段,"false" 值 }).remove() } catch (e) { console.error(e) } //1,通过fileID下载云存储里的excel文件 const res = await cloud.downloadFile({ fileID: fileID, }) const buffer = res.fileContent const tasks = [] //用来存储所有的添加数据操作 //2,解析excel文件里的数据 var sheets = xlsx.parse(buffer); //获取到所有sheets sheets.forEach(function(sheet) { console.log(sheet['name']); for (var rowId in sheet['data']) { console.log(rowId); var row = sheet['data'][rowId]; //第几行数据 if (rowId > 0 && row) { //第一行是表格标题,所有我们要从第2行开始读 //3,把解析到的数据存到excelList数据表里 const promise = db.collection('detail') .add({ data: { Date: row[0], //日期 User: row[1], //用户 Ex: row[2], //摘要 CB: row[3], //科目 Debit: row[4], //借方 Credit:row[5] //贷方 } }) tasks.push(promise) } } }); // 等待所有数据添加完成 let result = await Promise.all(tasks).then(res => { return res }).catch(function(err) { return err }) return result } 除了以上问题我还想问,怎么才能针对性的只导入一个EXCEL表格的第一张表、第二张表,因为字段都不一样,其实我只想导一次。上面的代码是在网上查找并修改的,遍历了全表。我只想表一一种提取数据方法,表二用另一种数据提取方法。那样就能更简捷
2021-01-06 - 云函数用Nodemailer发邮件已经成功了,如何传入变量?
已经实现了邮件的发送功能,但是实际情况是我需要发送不同的邮件内容到邮箱中。即将页面上的变量传入到云函数当中,改变每次发送邮件text中的信息。想请教我应该在哪里设置呢?万分感谢。 问题如果不好理解,可以简化为index页面上有个input,我要把input值作为邮件的正文,点按钮发到指定邮箱当中。 const cloud = require('wx-server-sdk') cloud.init() //引入发送邮件的类库 var nodemailer = require('nodemailer') // 创建一个SMTP客户端配置 var config = { host: 'smtp.163.com', //网易163邮箱 smtp.163.com port: 25, //网易邮箱端口 25 auth: { user: '****@163.com', //邮箱账号 pass: 'BRMUMMNCZRZPUZEK' //邮箱的授权码 } }; // 创建一个SMTP客户端对象 var transporter = nodemailer.createTransport(config); // 云函数入口函数 exports.main = async(event, context) => { // 创建一个邮件对象 var mail = { // 发件人 from: '***@163.com', // 主题 subject: '主题内容', // 收件人 to: '***@163.com', // 邮件内容,text或者html格式 text: '这里我想传变量' //可以是链接,也可以是验证码 }; let res = await transporter.sendMail(mail); return res; }
2020-12-18