作为一名合格的全栈开发者,如果没有自己的南拳七式,都不好意思说是 Node.js 全栈开发师。在过去的 2020 年中前端中各大厂商都推出了自己的云开发和 Serverless、以及各种各样的微服务席卷一地,今天我要介绍的是一个价值 85,000,000 美金的 Node.js 微服务的服务器。

什么是 Parse

Parse,它是在 2013 年被 Facebook 以 8500 万美金收购的项目,在 Facebook 中孕育了 4 年之后于 2017 年 02 月 28 日在 GitHub 中开源,查看该项目的地址。

parse 的服务包含了后台服务 parse-server,后台管理台 parse-dashboardiOS OSX tvOS 的 SDK 插件 parse-sdk-ios-osxJavaScript 的 SDK 插件 parse-sdk-js,以及 AndroidPHP 等其他语言的插件

今天手把手搭建一个 parse-server 的服务,以及包含一个完整的数据库管理台,让你快速上手实现一个完整的后台服务

安装

前提条件

  • Node.js

    Node.js 的版本需要 >= 8

  • MongoDB

    MongoDB 的版本需要 >= 3.0,如果没有安装 MongoDB,则至少需要一个安装了 MongoDB 的服务器以及诸如 mongodb://host:ip 的链接地址

安装 parse-serverparse-dashboard

yarn global parse-server parse-dashboard# or use npm
npm install -g parse-server parse-dashboard

安装完成之后查看全局安装的可执行文件是否执行正常

# test parse-server
parse-server --help# test parse-dashboard
parse-dashboard --help

配置

安装完成之后我们需要了解 parse-server 的运行方式以及配置文件的格式,parse-server 可以在命令行中通过添加参数的方式或者配置文件的方式运行。

一个parse-server 服务至少需要以下参数:

  • appId 一个服务的应用 ID,用来标识不同的应用程序以及在 API 请求中的识别
  • masterKey 应用程序中权限最大的秘钥,能够全局读写 parse-server 服务,因此该秘钥必须配置并且需要谨慎使用
  • databaseURI 数据库的地址。目前 parse-server 支持 MongoDB 和 PostgreSQL
  • javascriptKey JavaScript SDK 的请求秘钥,如果使用SDK 则必须配置
  • resAPIKey 使用 REST API 请求必须使用的秘钥
  1. 命令行中启动

    然后可以通过在命令行中执行以下命令快速启动 parse-server

    parse-server --appId APPLICATION_ID --masterKey MASTER_KEY --databaseURI mongodb://localhost:27017/test# output
    allowClientClassCreation: true
    appId: APPLICATION_ID
    cacheMaxSize: 10000
    cacheTTL: 5000
    customPages: {}
    databaseURI: mongodb://localhost:27017/test
    enableAnonymousUsers: true
    expireInactiveSessions: true
    graphQLPath: /graphql
    host: 0.0.0.0
    idempotencyOptions: {"ttl":300,"paths":[]}
    logsFolder: ./logs
    masterKey: ***REDACTED***
    masterKeyIps: []
    maxUploadSize: 20mb
    mountPath: /parse
    objectIdSize: 10
    playgroundPath: /playground
    port: 1337
    protectedFields: {"_User":{"*":["email"]}}
    revokeSessionOnPasswordReset: true
    schemaCacheTTL: 5000
    sessionLength: 31536000
    allowCustomObjectId: false
    collectionPrefix:
    directAccess: false
    enableExpressErrorHandler: false
    enableSingleSchemaCache: false
    mountGraphQL: false
    mountPlayground: false
    preserveFileName: false
    preventLoginWithUnverifiedEmail: false
    scheduledPush: false
    verifyUserEmails: false
    jsonLogs: false
    verbose: false
    level: undefined
    serverURL: http://localhost:1337/parse
    

    在成功执行之后,parse-server 会输出我们的服务器的配置,默认的服务端口是 1337, 如果需要更改端口可以在执行的时候添加 --port 参数。

  2. 配置文件的方式

    添加配置文件 parse-server.config.json

    {"appId": "MYAPPID","masterKey": "MYMASTERKEY","restAPIKey": "MYRESTAPIKEY","databaseURI": "mongodb://localhost:27017/example","port": 1337,"serverURL": "http://localhost:1337/parse"
    }
    

    然后在命令行中进入到文件目录并执行

    parse-server parse-server.config.json
    

    parse-server 的服务就在 localhost:1337 中启动成功

  3. 运行

    然后在浏览器中输入 localhost:1337/parse/health 即可看到parse-server 的返回结果

    {"status":"ok"}
    

服务

通常我们使用 parse-server 作为单独的服务或者作为 express 的中间件运行。

以下是两种服务方式的说明:

  1. 单独的服务

    作为单独的服务可以在后台通过和 Nginx 配合实现负载均衡,或者使用 Docker 部署,与自定义的服务之间可以通过 REST 请求或者使用 SDK 进行请求

  2. 中间件方式

    以中间件的方式可以通过挂载的方式使用 /parse 或者其他参数来访问服务,好处是能够与自定义的业务集成在一个服务中,内部访问比较快。缺点就是占用了路由的地址,如果有大量的自定义路由会造成混淆

我在项目中通常使用中间件方式的运行,因此 parse 官方提供了以中间件运行的模板项目,我自己在使用的时候添加了自定义的配置文件方式,以及路由的挂载,如果你有兴趣也可以基于我的 Github 的https://github.com/hom/parse-server-template

使用我的 parse-server 模板可以参考一下步骤

  1. 基于 .env.example 文件添加 .env 配置文件

    cat .env.example > .env
    
  2. 添加 .env 文件的配置值

  3. 安装项目的依赖

    # install packages
    yarn install
    # then
    yarn run start
    

下一篇内容我将详细介绍 关于 parse-server 的使用以及管理台的配置和安装

更多内容

更多的内容请关注GitHub@hom,知乎@孟太白,或者关注我的公众号@全栈开发师。分享相关计算机系统、网络和服务器的开发,学到老,写到老,生命不停,编程不止。

Parse 使用教程之一相关推荐

  1. Parse入门教程-服务的搭建及使用

    Parse介绍 在开发互联网服务时,除了常规的C/S,B/S架构,还存在一种Serverless的开发方式,后端是主要是作为一个数据存储的功能,对于前端开发人员,或者是小规模团队,在开发需要后端数据读 ...

  2. Parse 使用教程之四

    在之前的文章中简单介绍了 parse-server parse-dashboard 的安装和基本使用方法,如果还没看过的同学可以查看下面的文章链接预习一下哦 快速上手基于 parse-server 的 ...

  3. 【Python学习系列五】Python网络爬虫框架Scrapy环境搭建

    1.网络爬虫库Scrapy 网络爬虫,是在网上进行数据抓取的程序,使用它能够抓取特定网页的HTML数据.Scrapy是一个使用Python编写的,轻量级的,简单轻巧,并且使用起来非常的方便.Scrap ...

  4. Lucene全文检索_分词_复杂搜索_中文分词器

    1 Lucene简介 Lucene是apache下的一个开源的全文检索引擎工具包. 1.1 全文检索(Full-text Search)  1.1.1 定义 全文检索就是先分词创建索引,再执行搜索的过 ...

  5. 【web学习之ideaIU】 IntelliJ IDEA - 学习

    █ [web学习之ideaIU] IntelliJ IDEA - 学习 █ 相关文章: - ● [web学习之html] HTML基础 - 常见语法总结 ● [web学习之html] HTML基础 - ...

  6. Parse 教程:网络后台基础

    Parse 教程:网络后台基础 2015-07-21 10:07 编辑: suiling 分类:iOS开发 来源:Raywenderlich 本文由CocoaChina翻译组成员leon(社区ID)翻 ...

  7. AVOSCloud入门教程:Android Parse云服务的Hello World

    本文时间戳:2013年8月30日 AVOSCloud(万象云)才刚刚推出来不久的咯,其背后创业的推动者据说是Youtube的华人老大陈士骏(SteveChen,貌似手头有很多创业,美味,玩拍,都是,开 ...

  8. python scrapy菜鸟教程_scrapy学习笔记(一)快速入门

    安装Scrapy Scrapy是一个高级的Python爬虫框架,它不仅包含了爬虫的特性,还可以方便的将爬虫数据保存到csv.json等文件中. 首先我们安装Scrapy. pip install sc ...

  9. java中batch基础_详解Spring batch 入门学习教程(附源码)

    详解Spring batch 入门学习教程(附源码) 发布时间:2020-09-08 00:28:40 来源:脚本之家 阅读:99 作者:achuo Spring batch 是一个开源的批处理框架. ...

最新文章

  1. 移动端最强适配(rem适配之px2rem) 移动端结合Vuex实现简单loading加载效果
  2. 初学者如何学习机器学习中的L1和L2正则化
  3. Intel主动管理技术用例-远程诊断、远程修复
  4. shell 打印追加_[转]shell 数组定义、使用和追加
  5. CEO 赠书 | 讲述创新背后不为人知的故事,改变世界的 Ta 们做对了什么?
  6. 程序员40岁之后怎么办
  7. python-基础day10
  8. 连接mysql数据库2013_使用VS2013 + EF6 + .NET4.5 连接Mysql数据库
  9. Java调用存储过程出现Bug,sql语法错误
  10. ibm java英语面试_IBMJava英文面试题(附参考答案)
  11. 你需要知道的基础算法知识——STL和基础数据结构(二)
  12. more指令和less指令使用的区别
  13. 计算机 64位和32位区别,32位和64位的区别
  14. Astar算法基本概念及其实现
  15. 计算机的网络测速,电脑怎么网络测速
  16. 计算机理论高考知识点总结,计算机技能高考基础知识(常考知识点记忆)
  17. bug日志-win10任务栏卡死、无法加载
  18. 易语言数据库读取相关数据
  19. ChatGPT: 人工智能对话模型的前沿技术与应用探析
  20. c语言tab什么意思_我的C语言入门笔记~!

热门文章

  1. google earth 开发(一)
  2. LBP+SVM 活体识别
  3. 魔音Morin_v2.5.1电脑版 一款音乐神器
  4. maya之3d paint tool(3d绘制工具)
  5. 三维规划辅助决策系统
  6. 基于web多媒体素材库的开发与实现前景和范围文档
  7. OLED液晶屏幕(2)取模软件
  8. 为了验证自己Java学的如何,爆肝了10万字面试题,开源给大家
  9. php实现手机归属地的查询,PHP实现手机归属地查询API接口
  10. Springboot泊车收费管理系统97439计算机毕业设计-课程设计-期末作业-毕设程序代做