首页
免费后端云服务
关于
推荐
免费图床源码
Search
1
小程序后端入门系列视频教程【一-微信开发工具介绍】
9,722 阅读
2
微信小程序三级联动之多列选择器
9,606 阅读
3
小程序开发免费后端之神秘利器分享
9,536 阅读
4
Golang-开发企业级资源权限管理【第一步表设计】-1
9,081 阅读
5
学会微信服务端开发第一步
8,979 阅读
日常记录
日常
随笔
Bmob后端云
从零开始学物联网
Serverless实战驾校小程序
心邮
Serverless
向量数据库
登录
Search
Magic
累计撰写
124
篇文章
累计收到
70
条评论
首页
栏目
日常记录
日常
随笔
Bmob后端云
从零开始学物联网
Serverless实战驾校小程序
心邮
Serverless
向量数据库
页面
免费后端云服务
关于
推荐
免费图床源码
搜索到
124
篇与
的结果
2024-07-27
小程序后端入门系列视频教程【一-微信开发工具介绍】
计划录制一整套视频教程,主要讲如何对接后端到上线,从开发工具介绍到,项目提交上线,总计1小时。每个视频控制10分钟左右,总计6个视频。也可以称为60分钟学会小程序开发到上线。小程序视频目录1.微信开发工具介绍2.小程序后端介绍3.开发相关准备工作4.小程序首页开发5.小程序列表详细开发6.发布、显示评论以及上线1.第一节:微信开发工具介绍这节主要针对0基础,可能连开发工具都没摸过的童鞋,没开发过小程序可以可以看下。注册成为微信公众平台开发者 安装开发者工具 小程序开发工具介绍 目录介绍 项目app.js相关目录 文件介绍 逻辑层 视图层 数据层 学习技能 DIV+CSS JavaScript 小程序文档如有任何疑问,可在本文章下留言。视频地址:https://www.bilibili.com/video/av17914778/?from=search&seid=5983525011627926771
2024年07月27日
9,722 阅读
9 评论
10 点赞
2024-07-07
Serverless_公众号邀请返利开发
公众号邀请返利开发,通过Faas,一个函数即可实现微信授权返回昵称头像。 APP里有个注册页面,希望互相转发微信,邀请返利。 为了方便传播,注册页面单独用H5页面实现。 为了提高邀请用户质量,提高邀请用户的有效性,我们强制要求微信里面打开才能注册。所以基于公众号开发。 为了快速开发,这里使用Bmob云Serverless 里的Faas服务与文件CDN存储服务。1.准备材料公众号Bmob云Serverless支持自己域名(需备案)2.设置公众号 一、设置AppSecret值 开发者ID(AppID)开发者密码(AppSecret)二、设置白名单 IP白名单 image.png三、设置授权域名 接口权限,登陆,找到网页授权域名四、设置调试微信开发者 开发者工具-》web开发者工具 【这个跟小程序一样的工具】,添加微信到开发者,最多可以绑定50个 image.png3.开发过程 一、注册Bmob账号 二、创建一个应用 image.png三、点击进入云函数 编写微信获取用户昵称代码 image.png四、新建云函数 云函数getOpenId 获取用户openid,拿到openid调用getUserInfo获取用户信息云函数function onRequest (request, response, modules) { var code = request.body.code ? request.body.code : '011jOWiN0vmFa42ynziN0B6bjN0jOWir' //获取数据库对象 var db = modules.oData; var functions = modules.oFunctions; //http请求方式: GET var appid = ''; var secret = ''; var url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' + appid + '&secret=' + secret + '&code=' + code + '&grant_type=authorization_code'; //获取Http模块 var http = modules.oHttp; //发起Get请求 http(url, function (error, res, body) { if (!error && res.statusCode == 200) { //写入数据库 var resultObject = JSON.parse(body); //如果返回错误则打印 if (resultObject.errcode) { response.send(resultObject); } functions.run({ "name": "getUserInfo", "data": { "openid": resultObject.openid, "access_token": resultObject.access_token } }, function (err, data) { //回调函数 response.send(data); }); } }); } getUserInfo云函数function onRequest (request, response, modules) { var db = modules.oData; var openid = request.body.openid || 'ol2Ey0tePs0fdFdVRZKqzu50_83c'; var access_token = request.body.access_token || 'xxxx'; getUserInfoMp(openid, access_token); function getUserInfoMp (openid, access_token) { var http = modules.oHttp; http('https://api.weixin.qq.com/sns/userinfo?access_token=' + access_token + '&openid=' + openid + '&lang=zh_CN', function (error, res, body) { if (!error && res.statusCode == 200) { var at = JSON.parse(body); response.send(body); } response.send(body); }); } } 获取头像昵称开发完成 五.运行流程介绍 image.png用户打开一个url,这个url打开后会提示用户是否授权,同意后跳转到自己的网址,并带上code。(URL地址)[https://open.weixin.qq.com/connect/oauth2/authorize?appid\=wxbafdda995607cc\&redirect\_uri\=https://goldenage.xxxxx.com/\&response\_type\=code\&scope\=snsapi\_userinfo\&state\=STATEwechat\_redirect](https://open.weixin.qq.com/connect/oauth2/authorize?appid\=wxbafdda995607cc\&redirect\_uri\=https://goldenage.xxxxx.com/\&response\_type\=code\&scope\=snsapi\_userinfo\&state\=STATEwechat\_redirect)redirect\_uri参数关键:指定统一授权后打开的网址,接下来就1步,通过code拿到openid。上面函数getOpenId就可以拿到openid,如果需要昵称头像,可以调用第二个云函数getUserInfo[https://mp.weixin.qq.com/wiki?action\=doc\&id\=mp1421140842\&t\=0.356007856098852443](https://mp.weixin.qq.com/wiki?action\=doc\&id\=mp1421140842\&t\=0.356007856098852443))六.如何调用 image.pnghttps://cloud.bmob.cn/19b475f87c366db2/getOpenId 方法:post 参数:code: 微信code 返回: {"openid":"ol2Ey0tePs0fdFdVRZKqzu50_83c","nickname":"magic","sex":1,"language":"zh_CN","city":"广州","province":"广东","country":"中国","headimgurl":"http:\/\/thirdwx.qlogo.cn\/mmopen\/vi_32\/DYAIOgq83epySXbnQqg4MialjffKNKbxj42prvL2aIaIFbs3pj7svlT4gbQeQPbricZNBGYWfv1zcOo86fjwc99Q\/132","privilege":[]}}总结: 相比自己服务器开发优势,成本低,速度快。 基于Serverless,的Faas 只需要一个函数,即可实现用户openid功能。如果熟悉,整个微信开发不需要10分钟。这里有个用户点击授权的页面是HTML的,这个HTML我们可以用CDN云存储,把静态html页面保存到文件里面,支持绑定自己域名,让用户访问。 整个开发,不需要购买服务器,ip,环境,微信设置好,一个函数,暴露接口就可以实现。前端网页调用效果截图: image.png
2024年07月07日
10 阅读
0 评论
0 点赞
2024-06-23
【Serverless架构】小程序云实现原理分析
小程序云实现原理分析小程序基于最新的Serverless架构,无论官方称之为什么,特征都属于Baas或者Serverless服务。整个小程序云服务,包含了,客户端嵌入SDK,封装云函数上传命令,服务端主要在Faas云函数内部封装了openid、文件存储请求全局系统对象,方便大家请求微信与腾讯云接口, 云函数数据库操作,沿用了客户端SDK,由于JavaScript跨平台特性,js代码可以直接放到node里面执行,云函数里的wx-server-sdk,其实就是客户端的SDK。 客户端wx.cloud, 相当于微信开发工具写入了全局变量wx.cloud=wx-server-sdk库。 我们从客户端到服务端的顺序分析客户端-》中间层-》数据库1.客户端SDK目前客户端大家是不需要自己引入的,直接写入开发工具对象,只要微信基础库版本到达 2.2.3 或以上的就可以使用其实还有个服务端SDK,在云函数。看不见的wx.cloud对象,cloud对象,是一个js SDK,通过jssdk赋值给全局对象, 由于云函数的数据库操作方法写法与客户端一致,我们可以猜测,客户端SDK,与云函数的wx-server-sdk库 是同一个库。我们对比下2者的代码客户端 (小程序开发工具)db.collection('todos').doc('<some-todo-id>').get().then(res => { // res.data 包含该记录的数据 console.log(res.data) })服务端 (Faas)const cloud = require('wx-server-sdk') cloud.init() const db = cloud.database() exports.main = async (event, context) => { try { return await db.collection('todos').doc('<some-todo-id>').get() } catch(e) { console.error(e) } }核心代码客户端 db.collection('todos').doc('<some-todo-id>').get() 服务端 return await db.collection('todos').doc('<some-todo-id>').get()可以看到2者操作是相同的,只不过服务端用了es7的await异步对象,可以return 拿到结果集合。而客户端使用了 Promise风格,如果反编译微信开发工具,在wx.cloud对象里面,一定是可以找到大量与wx-server-sdk一模一样的代码。2. 中间层封装当我们开发登陆的时候,第一步需要拿到openid,客户端会请求云函数,云函数请求微信接口,最终返回openid,可我们看到云函数里面并不需要我们去请求微信的接口,而是直接event.userInfo.openId返回了openid。看代码exports.main = (event, context) => { console.log(event) console.log(context) // 可执行其他自定义逻辑 // console.log 的内容可以在云开发云函数调用日志查看 return { openid: event.userInfo.openId, } } 这里帮我们省略了很多代码,原本的流程是需要通过客户端code换区openid接口地址:https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code抓包看下,测试出来,只要访问这个地址,即可访问openidhttps://servicewechat.com/wxa-qbase/qbasecheckresult?event_id=HKnup_IMP8wWCsHwx0UyYsJMU0YPQm7u8eERg7Ll0wGB9CMSBtppMnu4P6Ytr6DFG2Vl_EGZS3nyEBw15OPCERLEi4Ok0HWC6g返回结果{ "base_resp": { "ret": 0 }, "status": 1, "content": "{\"openid\":\"oWPQH0WVoCkpiw3ErLYAIVnudjfA\"}", "service_errcode": 0, "service_errmsg": "", "func_req_id": "0f9c7a3f-b63c-11e8-b8ac-525400e8849e" }可以看到, 只要带一个参数event_id,就可以拿到openid, 云函数return的内容,会在返回的content字段表现。在请求从客户端,到达服务器之后,服务器获取到openid,记得这个openid比较特殊里有个情况是, 任何请求到服务器,都会获取openid, 第一次会从微信接口获取,写入到内存,第二次会直接从内存取。 这里用redis的情况可能性比较大。第二次请求直接取redis 值就可以了。 取到后写入event.userInfo对象。所以在任何云函数里,只要event.userInfo.openId,你都可以拿到openid。授权后,event.userInfo还包含头像等其他信息。其他云函数的操作,都封装在wx-server-sdk 这个代码,大家可以在每个云函数的依赖node_modules目录找到, 大家开发时遇到错误,也不要急,这里有个看错误技巧。以 6 开始的是由微信服务器侧产生的错误码以 5 开始的是由腾讯云侧产生的错误码以 4 开始的是本地 SDK 产生的错误3.数据库文档很多地方使用了,文档,集合概念,操作数据库传入参数也是mongodb的风格,很明显的使用了非关系类型,Mongodb数据库。 每个应用一个Collection。 云数据相当于Mongodb UI控制台。连显示结构也没改。 相比之前的Wafer套件,可以说这次是一个全新的解决思路。跟Bmob一样实现一个人全栈小程序开发,唯一效率比Bmob低的是,这个人必须掌握nodejs,Bmob的服务如果做小程序,相比小程序云,大部分需求是不需要掌握nodejs。总结:整套可以理解为mongodb+Faas的结合,封装了数据存储操作SDK。 与阿里的Serverless服务一样,以Faas为核心, Faas目前内置只封装了openid,去掉了定时任务,网关等功能,任何功能自己通过faas去实现,但只限定小程序内调用。相比阿里的Serverless 更贴地气,因为这次有了客户端SDK,再加云函数SDK,让Serverless找了到落地的可能。 最后脑洞问题:能否自己用阿里云Serverless 搭建一个小程序云?答案是可以的mongodb+Faas目前阿里的都有,并且目前阿里Faas功能更强大,唯一差个小程序客户端操作数据库的SDK。未来有机会,可以出个教程如何使用Faas实现一套自己的小程序-云
2024年06月23日
6,392 阅读
0 评论
20 点赞
2024-03-21
普及小程序-Serverless-云开发-【一】
普及小程序 Serverless 云开发 【一】什么是小程序 Serverless ?之前跟大家介绍过Serverless由Baas+Faas 组成,听着很高深,其实很好理解。可以理解为为你提供了开发过程中后端服务+自定义后端服务。你不需要去管什么后端语言,什么后端数据库,什么后端攻击,什么后端架构,什么后端维护等,只要做好客户端UI,连接上后端就好了。Bmob 作为国内第一家Serverless服务商,提供移动后端云服务。在这块已经服务了大量APP很多年。这里解释下之前叫Baas 为啥现在叫Serverless,这是因为大家对Serverless的形式有不一样的认可,一部分人认为Serverless = Faas+各种服务。 一部分人认为Serverless+Baas。大家的共同认知都是无服务器计算。未来不再需要去购买任何服务器去提供API,也不需要操作关心任何并发维护等问题。由于不需要写后端,不需要购买服务器,这块在APP领域,可操作性极高。我们从13年成立,就有大量APP开发者使用我们服务,到今天,已经接近30w开发者,涉及各行各业。 客户服务展现形式也是非常丰富,单片机、智能家居、智能手表、无人售货机柜、商场资讯地图引导柜机,机器人,共享单车、游戏,APP,小程序等等客户。除了Bmob Serverless外,国内2大云厂商也建立自己Serverless体系阿里云的Serverless就是 Faas+各种服务(数据库、网关、负载均衡等等)从Faas 里面调用各种服务,通过官网暴露给客户端。腾讯云的Serverless偏向于Baas+Faas 可以看下腾讯云Serverless的相关文章http://www.cnblogs.com/qcloud1001/p/9486751.html所以这也出现了2个例子:阿里Serverless开发一个微信红包小程序应用教程https://blog.csdn.net/zhoushuntian/article/details/79289215腾讯出的小程序云开发一个小程序教程https://zhuanlan.zhihu.com/p/42327375在熟悉Faas情况下,阿里的比传统小程序PHP API开发,在运维上与硬件成本上,有着明显优势。由于大家理念不同,腾讯小程序云,他是直接建立了一套Baas与小程序结合,跟Bmob后端云一样,即使你完全不懂Faas,也能开发大部分常用的小程序。 明显这种方式更简单实用。为什么是常用的应用可以用Baas做,而不是所有,因为有些特别应用,需要一些特别操作。例子一:http://www.91ud.com/app/15895.html这个基于Serverless开发的一个例子,是基于Bmob后端云小程序,开发的一个小程序,叫趣猫。他的业务是一个淘宝客的业务,搜索跟推荐分成是他主要的功能, 其中搜索,如果不配合Faas,是没法实现, 因为他的搜索,其实是搜索淘宝客API的数据,整个淘宝推广的商品都可以搜索出来,有token授权,需要Faas访问淘宝API,返回数据给小程序客户端。例子2:第二个基于Serverless开发的一个例子,小程序纸塘壁纸最近增加了一个功能,壁纸更新提醒通知,当后台有壁纸更新了, 会自动发送一条模板消息给我。这个也是基于Faas,单纯的Baas是没法实现这个功能。 当然,Bmob之前的Baas服务是包含了Faas服务,只是这2年Faas比较炒作的比较火。大家都把他(Faas)单独领了出来,作为Serverless架构的核心。我们则认为Baas与Faas同样重要。之前我有文章写过,阿里的Faas 推广力度,与体验领先于腾讯的Faas , 由于阿里与腾讯的理解不一样,这次在Serverless领域,个人认为腾讯云一定会超过阿里的Serverless。阿里云的Serverless就是 Faas+各种服务,不是玩微服务这个领域的人,很多人都不知道阿里的Serverless怎么结合到自己业务上。腾讯云理解为Baas+Faas,Baas有客户端的存在,更容易落地。大家理解的Serverless不一致,做的事情也不一致。像阿里Faas+各种服务(今天去看阿里官方还不断在给Faas增加可调用的服务,到目前阿里Faas几乎可以操作阿里云的大部分产品,数据库,redis,云存储等等服务),并不断在宣传Faas是如何去调用这些服务。腾讯云的行动告诉你什么叫Serverless(Baas+Faas),这次推出小程序云,以产品的形式告诉大家他眼中的Serverless服务。按照2018年7月份微信小程序官方公布的数据,目前注册开发者以及到达了150W+,这150w的开发者,大部分是一些小的cp厂商,这些小的CP厂商,大有可能接下来新开发的小程序都基于Serverless开发,而整个Serverless 市场,会比目前大很多倍。Serverless虽然好用,按照阿里的策略,很多人是看不懂无服务函数是干嘛的,为什么我要用它,而不是用云主机。因为设置太复杂了,概念很多,甚至好多人到今天还没搞懂计费原理。腾讯云的策略,由于有了小程序Baas与客户端打通,大部分情况不用自己去Faas里面写接口,使用非常简单,在Serverless这块领域,很快腾讯云就会超过阿里云,由于很多初级开发者都不会用,很难推广开来,这次小程序云对国内整个行业来说,都是一个很好的教育。算得上是国内推广Serverless行业的又一次里程碑,未来Serverless会像目前云主机一样普及。到底怎么使用?有些前端对Serverless与小程序云的关系可能不太能理解,我下面用小程序云来代替Serverless这个词。前期准备:申请公测资格 网址:下载bate版开发工具控制台操作:打开小程序云控制台,在bate版小程序开发工具上传的左侧有个按钮。点开后,看到一个类似这样的界面点击数据库,创建一个自己前端想显示的数据结构。例如这里建个team表代码操作:我们把这条数据在小程序内显示? 这里我跟Bmob后端云做个对比初始化微信wx.cloud.init({ env: 'test-x1dzi' })Bmob后端云app.js 引入var Bmob = require('../dist/Bmob-1.0.1.min.js');wx.Bmob.initialize("你的Application ID", "你的REST API Key", "你的MasterKey");2.第二步,查team表,打印出返回的数据微信db.collection('team').get().then(res => { // res.data 是一个包含集合中有权限访问的所有记录的数据,不超过 20 条 console.log(res.data) })Bmob后端云//构建team表对象 const query = Bmob.Query("team"); //查询数据 query.find().then(res => { //res 集合中所有数据,默认100条 console.log(res) });可以看到,除了需要引入SDK , 2个在使用上几乎一致。小程序云开发与使用Bmob开发几乎雷同。文档地址:https://bmob.github.io/hydrogen-js-sdk/#/?id=%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8-1关于定价:腾讯云,最低版本API 3w 天数据库 1G 存储 5G目前还不知道腾讯云的最低基础版上线是否收费,如果免费,那就很赞了。按照经验,这个额度大部分小应用都够了。Bmob小程序云 最低版本(免费)API 100w 月数据库 表行 10w存储 免费20G流量 每月送20G这个套餐免费,基本够用,收费套餐,大部分小程序都很难用得完。目前小程序云还缺乏解决2个问题:1.关于更好的功能实用性:目前小程序云暂时比不上,Bmob后端云,像导入导出,生成小程序二维码、解密手机号,运动步数,支付,退款,短信,这些基础Baas服务端封装,小程序云暂时都还没有。然后就是数据安全与稳定性了,目前暂时没看到有任何关于备份的介绍,应用受到CC、DDOS 等攻击,这个费用是谁来承担,腾讯云之前的业务是客户自己解决,Bmob等 Baas 都是无需用户去承担这个费用的。2.服务售后我们都知道Baas 跟业务有深度关系,不像传统的云主机,我只保证云主机不死机就好了。基本卖出去就等着收月租。Baas领域开发者会遇到各种问题,你可以说你平台是标准的,文档都有,那么多技术人员在用,可开发者技术能力,理解能力参差不齐,就很难解决一些问题。 所以在传统的Baas 服务,都很重视问题反馈,像Bmob 就有几十个QQ解答群,加上工单。其他所有的Baas几乎没有哪家没工单服务的,有些工单还收几百块/月,大量工单,技术人员有限,这是没办法的,很多人问的问题,明显是技术基础不过关,对自己业务逻辑理解不够,就使劲提工单,而有些业务与Baas结合问题工单比较难形容,不知道Baas是否可以实现,所以有时候就用上了即时通讯,QQ,微信等来协助开发者解决问题。 所以这也是腾讯小程序云待解决的问题。总结:目前小程序云刚出来,还需要完善,对国内Serverless 市场来说,是一次里程碑式的意义。有望让中小企业普及Serverless 技术。
2024年03月21日
8,824 阅读
0 评论
11 点赞
2024-03-02
mongodb运维(2)-mongostat命令
mongostat的功能类似于Unix / Linux文件系统使用vmstat,监控数据库上各项操作的统计,如增删查改的数量、联机数、內存使用状况…等,默认情况下,mongotop返回值的每一秒。官方详细文档:https://docs.mongodb.com/manual/reference/program/mongod/#bin.mongod1. mongostat 使用帮助及参数说明2. 监控数据参数说明insert 表示每秒插入数据库的对象数量,如果跟在一个*后面,表示这是复制操作、query 每秒查询操作数量、update 每秒更新操作数量、delete 每秒删除操作数量、getmore 每秒get more操作的数量、command 每秒执行数据库命令操作的数量(比如插入、查找、更新、删除等等)、flushes 每秒执行fsync操作的数量、mapped 映射数据的总量,以兆字节M表示。这里的数据是从上次mongostat显示到这次的数量、vsize mongod或mongos进程用掉的虚拟内存,以兆字节M表示、locked db 这里的值表示当前列出的数据库在锁定状态上花销的时间加上mongod进程在全局锁上花销的时间,以百分比表示、idx miss 表示需要一个页面错误来加载一个Btree节点的索引访问尝试的百分比、qr 客户端等待从MongoDB实例读操作的队列长度、qw 客户端等待从MongoDB实例写操作的队列长度、ar 正在执行读操作的客户端数量、aw 正在执行写操作的客户端数量、netIn MongoDB实例接收到的网络流量,用字节bytes表示,包括mongostat本身连接MongoDB实例产生的流量、netOut MongoDB实例发送出去的网络流量,用字节bytes表示,包括mongostat本身连接MongoDB实例产生的流量、conn 打开的连接数总数、set replica set的名称、repl replica set的状态 PRI 表示是Primary,SEC表示是Secondary问题: 哪些工具可以实时监控MongoDB的整体性能?答案是:我觉得最合适是mongostat ,虽然mongotop 可以看到具体集合,综合性能还是mongostat合适。一般来说,我们想看目前机器的负载,可以使用mongostat,这个数值的多少,没有一个标准答案,每个人的服务器配置不同,业务代码sql、表的数据量都会影响着这个数值。
2024年03月02日
269 阅读
0 评论
8 点赞
1
...
4
5
6
...
25