nodejs + 小程序云函数 生成小程序码
前言:这个东西坑死我了 业务需求要生成小程序码 然后我找了两天的资料 运行 生成一堆的乱码 死活就是不能生成 最后看了一遍博客 套用了一下 自己又简单的改了一下 nodejs 我是刚刚接触 有很多都是不明白 request-promise 开始我用这个框架获得“access_token
- npm install --save request // request框架
- npm install --save request-promise // request框架promise风格
- npm install --save axios // 数据请求框架,可将返回的数据类型设置为流`stream`
- # 备注:install 可以简写为 i ;save 作用是将这个库添加到package.json里
- const cloud = require('wx-server-sdk')
- const axios = require('axios')
- var rp = require('request-promise');
- const fs = require('fs');
- var stream = require('stream');
- cloud.init()
- // 云函数入口函数
- exports.main = async (event, context) => {
- console.log(event)
- try {
- const resultValue = await rp('https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' + event.userInfo.appId + '&secret=' + event.appSectet)
- const token = JSON.parse(resultValue).access_token;
- console.log('------ TOKEN:', token);
- //const response = await axios({
- return await axios({
- method: 'post',
- url: 'https://api.weixin.qq.com/wxa/getwxacode',
- //responseType: 'stream',
- responseType: 'arraybuffer',
- params: {
- access_token: token,
- },
- data: {
- //access_token: token,
- path: "pages/index/index",
- width: 300,
- //scene: "id=12"
- },
- }).then(function (response){
- return response.data;
- })
- } catch (err) {
- console.log('>>>>>> ERROR:', err)
- }
- }
再生成完小程序码数据后
在调用函数里需要转base64格式 然后图片就生成了
- wx.cloud.callFunction({
- name: 'getImage',
- data: {
- appSectet: app.globalData.appSectet
- }
- }).then(res => {
- var imgUrl = wx.arrayBufferToBase64(res.result); //res.result
- imgUrl = ("data:image/png;base64," + imgUrl);
- console.log(imgUrl)
- thisData.setData({
- captchaImage1: imgUrl
- })
- })
如果你不想转base64 的话 可以直接上传到七牛 然后拿到路径
那就直接在云函数里 加代码就可以 上传的到七牛 用流的形式上传到七牛
**********注意 是在云函数加代码呀 在上面的云函数代码里 就不能直接返回了 把.then后面的东西注释掉 把这个response 变量打开 然后要引入七牛的框架
- var options = {
- scope: "你的空间",
- };
- var accessKey = "你的accessKey ";
- var secretKey = "你的secretKey ";
- var mac = new qiniu.auth.digest.Mac(accessKey, secretKey);
- var options = {
- scope: "bwt-portrait",
- };
- var putPolicy = new qiniu.rs.PutPolicy(options);
- var uploadToken = putPolicy.uploadToken(mac);
- console.log(uploadToken, "--------------")
- var config = new qiniu.conf.Config();
- // 空间对应的机房
- config.zone = qiniu.zone.Zone_z0
- var key = 'image10.png';
- return await new Promise(res => {
- var formUploader = new qiniu.form_up.FormUploader(config);
- var putExtra = new qiniu.form_up.PutExtra();
- var readableStream = response.data;
- formUploader.put(uploadToken, key, readableStream, putExtra, function (respErr,
- respBody, respInfo) {
- console.log("代码走了");
- if (respErr) {
- throw respErr;
- }
- if (respInfo.statusCode == 200) {
- console.log(respBody);
- res(respBody)
- } else {
- console.log(respInfo.statusCode);
- console.log(respBody);
- res(respInfo.statusCode)
- }
- });
- })
大体就是这样 业务需求的不同 实现的也是不同的 可以自行更改
最后我把我看的博客地址连上
https://blog.csdn.net/feng2qing/article/details/82914505?utm_source=blogxgwz5
nodejs + 小程序云函数 生成小程序码的更多相关文章
- 如何使用微信小程序云函数发送短信验证码
其实微信小程序前端和云端都是可以调用短信平台接口发送短信的,使用云端云函数的好处是无需配置域名,也没有个数限制. 本文使用的是榛子云短信平台(http://smsow.zhenzikj.com) ,S ...
- 微信小程序云函数 添加数据到数据库
1.新建小程序,建立云开发快速启动模板 这里和普通小程序的区别有三点 一是 project.config.json写上云函数所在目录"cloudfunctionRoot": &qu ...
- 【Serverless】云函数微信小程序
简介 什么是AppGallery Connect云函数 云函数是一项Serverless计算服务,提供FaaS(Function as a Service)能力,可以帮助开发者大幅简化应用开发与运维相 ...
- 微信小程序云函数Windows下安装wx-server-sdk
第一次上传部署云函数时,会提示这个,建议在这之前先安装一下node.js. https://nodejs.org/en/ 下载nodejs,然后直接安装,在cmd控制台输入node -v和npm -v ...
- 小程序云函数,解决接口https问题
本实例只是简单记录http请求 1,云函数如下 // 云函数入口函数 exports.main = async (event, context) => { let req = await got ...
- Http API触发小程序云函数案例
1.创建云函数 在云开发中创建云函数(sum,调用需要两个参数:a.b): 2.invokeCloudFunction触发云函数 const request = require('request'); ...
- 微信小程序云函数中有以下未安装的依赖,如果未安装即全量上传
云函数中有以下未安装的依赖,如果未安装即全量上传 在新建的云函数,右击终端打开->cmd,安装依赖 npm install --production 依赖安装成功之后,文件里面会出现 packa ...
- 微信小程序-云函数、云存储
云函数是运行在服务器端的 创建一个目录cloud project.config.json配置云函数目录 cloud目录有个云朵.代表云函数 初始化成功了 新建一个云函数 cloud目录右击 新建一个N ...
- 微信小程序云开发之云函数创建
云函数 云函数是一段运行在云端的代码,无需管理服务器,在开发工具内编写.一键上传部署即可运行后端代码. 小程序内提供了专门用于云函数调用的 API.开发者可以在云函数内使用 wx-server-sdk ...
随机推荐
- LevelDB源码分析-Write
Write LevelDB提供了write和put两个接口进行插入操作,但是put实际上是调用write实现的,所以我在这里只分析write函数: Status DBImpl::Write(const ...
- Longest Palindrome 最长回文串问题
1.题目 Given a string s, find the longest palindromic substring in s. You may assume that the maximum ...
- 去除编辑器的HTML标签
去除HTML携带的标签常用函数 string strip_tags(string str); 编辑器存放内容到数据库时p标签会转换成这种<p></p> 需要使用htmlspec ...
- 这可能是史上最全的windows10装ubuntu双系统教程
一. 先搞清楚自己电脑的类型: A MBR传统bios+单硬盘 B MBR传统bios+双硬盘(SSD固态硬盘+机械硬盘) C UEFI新式bios+单硬盘 D UEFI新式bios+双硬盘( ...
- CS通用项目系统搭建——三层架构第一天
CS通用项目:使用三层架构进行搭建 三层架构: 表现层(UI(User Interface)):展示给用户的层面,包含窗体控件数据等信息. 业务逻辑层(BLL(Business Logic Layer ...
- Java框架spring Boot学习笔记(六):Spring Boot事务管理
SpringBoot和Java框架spring 学习笔记(十九):事务管理(注解管理)所讲的类似,使用@Transactional注解便可以轻松实现事务管理.
- eclipse invalid zip archive lib
eclipse invalid zip archive lib 修改.class文件的编译内容.删除license或找到相应的jar包,放到lib下面,重新编译.
- 提高GitHub下载速度
修改/etc/hosts 加上 151.101.72.249 GitHub.global.ssl.fastly.net 192.30.253.112 github.com
- AS报:Manifest merger failed with multiple errors, see logs
* What went wrong:Execution failed for task ':app:processDebugManifest'. Manifest merger failed with ...
- codecombat之地牢关卡Python代码
1.地牢 # 向宝石进发. # 小心撞墙! # 在下面输入你的代码. self.moveRight() self.moveDown() self.moveRight() 2.深藏的宝石 # 利用你的移 ...