js直接操作数据库会怎么样原创
微信云开发是微信团队联合腾讯云推出的专业的小程序开发服务。
开发者可以使用云开发快速开发小程序、小游戏、公众号网页等,并且原生打通微信开放能力。
开发者无需搭建服务器,可免鉴权直接使用平台提供的 API 进行业务开发。
云开发优势
快速构建小程序、公众号
无需搭建服务器,只需使用平台提供的各项能力,即可快速开发业务。
无需管理证书、签名、秘钥,直接调用微信 API 。复用微信私有协议及链路,保证业务安全性。
支持环境共享,一个后端环境可开发多个小程序、公众号、网页等,便捷复用业务代码与数据。
支持按量计费模式,后端资源根据业务流量自动扩容,先使用后付费,无需支付闲置成本。
数据库
云开发提供了一个 JSON 数据库,顾名思义,数据库中的每条记录都是一个 JSON 格式的对象。一个数据库可以有多个集合(相当于关系型数据中的表),集合可看做一个 JSON 数组,数组中的每个对象就是一条记录,记录的格式是 JSON 对象。
关系型数据库和 JSON 数据库的概念对应关系如下表:
关系型 | 文档型 |
---|---|
数据库 database | 数据库 database |
表 table | 集合 collection |
行 row | 记录 record / doc |
列 column | 字段 field |
数据库 API 包含增删改查的能力,使用 API 操作数据库只需三步:获取数据库引用、构造查询/更新条件、发出请求。以下是一个在小程序中查询数据库的图书记录的例子:
/ 1. 获取数据库引用
const db = wx.cloud.database()
// 2. 构造查询语句
// collection 方法获取一个集合的引用
// where 方法传入一个对象,数据库返回集合中字段等于指定值的 JSON 文档。API 也支持高级的查询条件(比如大于、小于、in 等),具体见文档查看支持列表
// get 方法会触发网络请求,往数据库取数据
db.collection('books').where({
publishInfo: {
country: 'United States'
}
}).get({
success: function(res) {
// 输出 [{ "title": "The Catcher in the Rye", ... }]
console.log(res)
}
})
简单总结下步骤:
1.开通云开发服务;
2.控制台创建集合、维护数据;
3.前端使用sdk直接读取云数据库中数据;
4.前端展示数据;
相对于传统开发模式省去了维护数据库,购买公网域名等事项,极大的提高了开发速度,降低了运维难度。
很显然前端直接操作数据库的技术限制被解决了,那安全问题呢?F12、抓包等手段在小程序面前已然是败下阵来,毕竟它的底座是微信,不信你抓包看看?
回到我们开头提到的扩展\稳定性,对于简单场景来讲无伤大雅,真有扩展需求时再重构也不晚,毕竟简单,对于我朋友那种演示场景来讲快速看到成品才是最重要的,需要快速试错。
作为技术人来讲不要太追求“技术”,要适当的学会妥协,切记不能脱离场景。