这篇文章的题目叫无服务端的 Web 应用,是因为我发现一些有意思的东西。
很久之前我发现了一个在线的 Markdown 编辑器,叫 StackEdit 。这个编辑器,不需要注册和登录(除了部分需要捐赠才能使用的高级功能,这个时候你需要登录来认证你的身份)。你所有的文档都存储在你的其他服务中,比如 Google Drive,Dropbox,Github 和 PouchDB。你可以从某个云服务打开你的文档,或者存储当前的文档到某个云服务中。
这个编辑器支持从 CouchDB 存取文件(CouchDB 内建了文件存储),不过当时作者写这个地方的时候似乎完全没有考虑数据库加密的问题,即使以 https://user:pass@host/db 的形式进行配置,编辑器的存取过程也会舍弃 user 和 pass,所以目前无法实际完成远端数据库的存取作,毕竟我不敢把线上的 CouchDB 的用户名和密码取消掉。遗憾的是作者已经弃坑好多年了,编辑器开源,但是当时有人提的 mr 他也没收,似乎在维护新的项目。
与此同时,还有另外一个非常在线的 Markdown 编辑器,叫 dillinger.io ,功能和 StackEdit 相近,同样是从各个云服务读取和存储到各个云服务,但是它所有的存取过程都是在服务端完成的。
StackEdit 与 Dillinger 相比,可以做到完全丢掉自己的服务端。我按照这个思路,写过一个 Demo,也是一个 Markdown 编辑器,从 OneDrive 存取 markdown 文件,除了速度不敢恭维外,其他一切 OK。Google Drive,OneDrive,Github,Dropbox 等等都有开放 API,并且支持 JavaScript 访问。这意味着,如果我写一个跑在浏览器端的 Web App,那它可以从这些存储服务存取数据,而不管这是个账本,编辑器,还是别的任意的工具。
如果面向国内用户的话,连接个人云服务的话,根据前辈们的经验,可能会比较多坑,但是对接企业云存储服务的话应该就没问题了。比如七牛云的对象存储是有 JS API 的,我还写过一个上传图片的小工具,只是一个 HTML 文件引入了几个 JS 文件,写了一点样式,要用的话在设置里写上 Token 然后保存就可以了,选择图片上传,然后可以得到图片的 URL,按照这个思路,可以搞很多有趣的东西的样子。顺便一提,把这些 HTML/CSS/JS 什么的文件丢 VS,Build 一下就是一个 Windows10 UWP APP,不需要任何调整。
不过我还是更关注 CouchDB。我在前一篇文章提到了 CouchDB 和 PouchDB ,这两个东西,可以完成在用户离线的时候存储数据到本地,在线的时候同步到远端的数据库的功能。
用户配置存储渠道,工具只出功能 ┑( ̄Д  ̄)┍。