在开发互联网服务时,除了常规的C/S,B/S架构,还存在一种Serverless的开发方式,后端是主要是作为一个数据存储的功能,对于前端开发人员,或者是小规模团队,在开发需要后端数据读写及简单处理逻辑的场景下,提供了极大的便利性。
目前Serverless的服务,最有代表性的是Google的Firebase,以及被Facebook收购后开源的Parse。由于国内网络环境的原因,大部分的Firebase功能都无法使用。而Parse除了具有作为一个开源项目的优势,另一方面,原来是作为一个运行的成熟商业项目,有完善的各平台sdk,官方的文档也比较详细.
Parse官网:https://parseplatform.org/
parse-server项目地址: https://github.com/parse-community/parse-server
parse-dashboard项目地址: https://github.com/parse-community/parse-dashboard
parse-server-example项目地址: https://github.com/parse-community/parse-server-example
ParseServer支持MongoDB和Postgres两种数据库,使用mongoDB相对简单一些.
安装MongoDB后,创建一个数据库,并新建有readWrite权限的数据库账号.
Parse提供了一个示例demo,通过express作为接口,对外提供Parse服务的方式,即上面提到的parse-server-example项目.
同步example项目到本地后,此时只要npm install项目中的依赖之后,这就是一个已经完整运行的后台服务了.此时需要修改项目中index.js文件中的服务配置.
var api = new ParseServer({
databaseURI: databaseUri || 'mongodb://localhost:27017/dev',
cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
appId: process.env.APP_ID || 'myAppId',
masterKey: process.env.MASTER_KEY || '', //Add your master key here. Keep it secret!
serverURL: process.env.SERVER_URL || 'http://localhost:1337/parse', // Don't forget to change to https if needed
liveQuery: {
classNames: ["Posts", "Comments"] // List of classes to support for query subscriptions
}
});
主要修改databaseURI的部分,地址,端口号,以及数据库名称都要和本地对应.带账号和密码的数据库配置格式:
databaseURI: databaseUri || 'mongodb://username:password@localhost:27017/database_name',
配置完成后,执行npm start启动服务.此时就已经支持数据存储和读取的功能了,所以这里后端的开发成本很低,立刻就能上手使用.可以通过访问页面http://127.0.0.1:1337/public/test.html来测试数据读写的功能.index.js里面默认接口是1337,所以我们地址里用的也是1337.
当存在一些需要在后端处理的逻辑时,ParseServer也提供了Cloud Code的支持.我们值需要在cloud目录下编辑main.js,添加我们自己的处理逻辑即可.例如
Parse.Cloud.define('calculate', function(req, res) {
var a = req.params.a;
var b = req.params.b;
var c = a + b;
res.success(c);
});
只要发送POST请求http://127.0.0.1:1337/parse/functions/calculate,带上JSON参数{“a”:1,“b”:“2”},同时要在hearder中指定X-Parse-Application-Id,我们就能收到接口返回{“result”: 3}.同理,根据自己的业务需求,开发对应的处理逻辑也变得非常容易.
Parse对于客户端的支持做的很完善,常见的平台都有覆盖到,而且还提供了Rest API的接口方式.所以无论是做Web端,还是移动端,都可以快速集成到自己的项目中.具体支持的SDK以及对应的文档可以查看Parse官网https://parseplatform.org/
参考:
Parse Server - 1分钟搭建专业API服务
在本地部署Parse Server
Parse-Server 所见所闻所用
parse-server和parse-dashboard安装及阿里云express部署