2019独角兽企业重金招聘Python工程师标准>>>

Parse是什么?

Parse是一个开源框架,基于nodejs(开发语言)、mongodb(数据库存储)实现的,并且提供了众多SDK包,包括:iOS、Android、Javascript、.NET、PHP、REST API等。Github上关注的星星也很多,有15K多,看得出是比较受欢迎的。

官方的介绍是:

The Complete Application Stack

Build applications faster with object and file storage,
user authentication, push notifications, dashboard and more out of the box.

相关重要资料和链接

Parse官网:https://parseplatform.org/

Parse的Github代码仓库:https://github.com/parse-community/parse-server

众多SDK包文档与代码:https://docs.parseplatform.org/

安装使用

安装方式一:全局安装

官网提供的安装以及运行方式如下:

$ npm install -g parse-server mongodb-runner
$ mongodb-runner start
$ parse-server --appId APPLICATION_ID --masterKey MASTER_KEY --databaseURI mongodb://localhost/test

如果全局安装成功,那么就能正常运行,并通过一个测试链接看到效果。

但是,如果我采用全局安装的话,就会提示错误(即便用了 root 权限),错误提示是:

npm ERR! code 128
npm ERR! Command failed: /bin/git clone --depth=1 -q -b master git://github.com/mongodb-js/mongodb-tools.git /root/.npm/_cacache/tmp/git-clone-202253e0
npm ERR! fatal: 不能为 '/root/.npm/_cacache/tmp/git-clone-202253e0' 创建先导目录: ????
npm ERR! npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2018-11-29T05_12_56_706Z-debug.log

虽然官方文档有提过,如果有错误就查看相关资料。但,可以换成本地局部的方式来快速安装。

安装方式二:拉Git代码下来安装并运行

第二种方式,是把Github的代码拉下来,然后运行。这样的好处,相比于第一种直接使用,这种还可以支持二次开发,比较适合我们开发人员。

先拉下代码:

git clone https://github.com/parse-community/parse-server.git

然后,本地进行一下 npm install,安装依赖的类库后,尝试运行。

npm start -- --appId APP_ID --masterKey MASTER_KEY --serverURL localhost

成功启动后,可以看到类似这样的输出:

> parse-server@3.1.2 start /home/dogstar/node/parse-server
> node ./bin/parse-server "--appId" "APP_ID" "--masterKey" "MASTER_KEY" "--serverURL" "127.0.0.1"here we go~~~~
(node:17699) ExperimentalWarning: The http2 module is an experimental API.WARNING, Unable to connect to '127.0.0.1'. Cloud code and push notifications may be unavailable!appId: APP_ID
masterKey: ***REDACTED***
serverURL: 127.0.0.1
masterKeyIps: []
logsFolder: ./logs
databaseURI: mongodb://localhost:27017/parse
userSensitiveFields: ["email"]
enableAnonymousUsers: true
allowClientClassCreation: true
maxUploadSize: 20mb
customPages: {}
sessionLength: 31536000
expireInactiveSessions: true
revokeSessionOnPasswordReset: true
schemaCacheTTL: 5000
cacheTTL: 5000
cacheMaxSize: 10000
objectIdSize: 10
port: 1337
host: 0.0.0.0
mountPath: /parse
scheduledPush: false
collectionPrefix:
preserveFileName: false
verifyUserEmails: false
preventLoginWithUnverifiedEmail: false
enableSingleSchemaCache: false
enableExpressErrorHandler: false
jsonLogs: false
verbose: false
level: undefined[17699] parse-server running on 127.0.0.1

这里有一些坑

一开始不太懂的时候,怎么运行都不行,不是提示这个错误:

# 错误执行方式,少了前面的双杠杠
npm start  --appId APP_ID --masterKey MASTER_KEY --serverURL 127.0.0.1 # 错误提示
Error: Cannot find module '/home/dogstar/node/parse-server/APP_ID'

就是提示那个错误:

ERROR: appId and masterKey are requirednpm ERR! code ELIFECYCLE
npm ERR! errno 1

但都是自己理解不到位,全貌和错误导致的。

运行mongodb

与此同时,如果需要运行mongodb,也可以局部安装mongodb,然后启动mongodb。

# 局部安装
npm install mongodb-runner# 启动
./node_modules/mongodb-runner/bin/mongodb-runner.js start --port 27017◝ Starting a MongoDB deployment to test against...◟ Starting a MongoDB deployment to test against...◝ Starting a MongoDB deployment to test against...

安装运行方式三:发布到生产环境

如果是要发布到生产环境,那么可以进行打包发布,并且全部采用局部安装的方式。所以,可以把parse-server也在本地项目安装下(保险起见):

# 局部安装
npm install parse-server

这时,在原来项目的根目录下,会有一个 bootstrap.sh 的文件,运行它,然后按照它的指引,输入一些信息,例如:

$ ./bootstrap.sh `.-://:-..`            `:/oooooooooooooooo+:.`        `:+oooooooooooooooooooooo+/`      :+ooooooooooooooooooooooooooo/.    .+oooooooooooooo/:.....-:+ooooooo-   .+ooooooooooooo/` .:///:-` -+oooooo:  `+ooooooooooooo: `/ooooooo+- `ooooooo- :oooooooooooooo  :ooooooooo+` /oooooo+ +ooooooooooooo/  +ooooooooo+  /ooooooo.oooooooooooooo+  ooooooooo`  .oooooooo.+ooooooooooo+/: `ooooooo`  .:ooooooooo.:ooooooo+.`````````````  /+oooooooooo+ `+oooooo- `ooo+ /oooooooooooooooooooo- .+ooooo/  :/:` -ooooooooooooooooooo:  .+ooooo+:-..-/ooooooooooooooooooo-   :+ooooooooooooooooooooooooooo/.    `:+oooooooooooooooooooooo+/`      `:/oooooooooooooooo+:.`        `.-://:-..`            parse-serverEnter an installation directory
(/home/dogstar/node/parse-server): 

完成后,会在根目录,生成 一个 config.json 的配置文件,例如这样:

{"appId": "123456","masterKey": "abc","appName": "tryp","cloud": "./cloud/main","port": "13370","databaseURI": "mongodb://127.0.0.1:27017/parse"
}

这个配置文件等下启动时会用到。准备好这些工作后,我们先来准备下打包和发布。

首先,是打包。

在根目录下,运行:

$ npm run-script build

成功后,输出:

$ npm run-script build> parse-server@3.1.2 build /path/to/parse-server
> babel src/ -d lib/ --copy-filesSuccessfully compiled 135 files with Babel.

也就是说,打包后的文件全部都在 ./lib 目录下,而且都是经常编译压缩后的,源码再也不用担心泄露(才怪),妥妥的。

接下来,为了模拟发布。

我们在与 parse-server 同级的地方新建另外一个新目录,专门用来存放要发布的文件。发布目录是:parse-server-publish。

这里,通过创建软链,而不是真的复制代码的方式,来表示,需要发布哪些文件和目录。全部需要用到的软链如下:

bin -> ../parse-server/bin
cloud -> ../parse-server/cloud
config.json -> ../parse-server/config.json
lib -> ../parse-server/lib
node_modules -> ../parse-server/node_modules
package.json -> ../parse-server/package.json

最后一步,运行parse-server项目!

$ ./bin/parse-server -- config.json  [13121] parse-server running on http://localhost:13370/parse

这样就可以运行啦~~~完美!!

测试一下

$  curl -X GET   -H "X-Parse-Application-Id: APP_ID"   http://localhost:13371/parse/roles
{"results":[]}

搞定,收工!下次继续说说如何二次开发。

转载于:https://my.oschina.net/dogstar/blog/2962955

玩转Parse(第一篇:新手入门)相关推荐

  1. 利用51单片机+hc595芯片配合在led点阵上玩贪吃蛇 第一篇“显示贪吃蛇”

    利用51单片机+hc595芯片配合在led点阵上玩贪吃蛇 第一篇"显示贪吃蛇" 完整的项目链接: https://github.com/linxinloningg/51_chip_ ...

  2. 公开课 | 解密HW究竟怎么玩?之 第一篇

    HW目的 检测国家关键基础设施与单位备案重要信息系统的安全问题和隐患,检验其事件监测.安全防护与应急处置,快速协同.应急处突的能力. HW目标 涉及的行业众多.范围广泛,包含政府.金融.电力.运营商. ...

  3. Electron系列教程——第一篇:入门

    Electron系列教程--第一篇:入门 一.楔子 想要学习Electron,跟着官网或者中文网,仔细阅读,并实践,其实是够了,不必要重复.那为什么还要写这个系列呢?大概有两方面原因,其一:我使用el ...

  4. vue 单相绑定_Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)...

    Vuejs第一篇之入门教程详解(单向绑定.双向绑定.列表渲染.响应函数) 2018-12-30 什么是组件? 组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素 ...

  5. pytorch 指定卡1_[原创][深度][PyTorch] DDP系列第一篇:入门教程

    引言 DistributedDataParallel(DDP)是一个支持多机多卡.分布式训练的深度学习工程方法.PyTorch现已原生支持DDP,可以直接通过torch.distributed使用,超 ...

  6. 第一篇-python入门

    Python入门 一 编程与编程语言 python是一门编程语言,作为学习python的开始,需要事先搞明白:编程的目的是什么?什么是编程语言?什么是编程? 编程的目的: #计算机的发明,是为了用机器 ...

  7. 武侠乂怎么修改服务器,武侠乂新手怎么玩 武侠乂手游新手入门技巧

    武侠乂新手怎么玩?武侠乂是一款高自由度的动作冒险竞技游戏,游戏中我们将扮演一名武侠与其他玩家角逐第一,今天小辰给大家介绍武侠乂新手攻略技巧,想知道如何玩好武侠乂吗,一起来看看吧! 武侠乂新手技巧 1, ...

  8. 《玩转Deepin第一篇 · Deepin系统的介绍和安装》

        写在前面,我使用Deepin系统的大概有三年的时间,在大一的时候系统学习计算机的知识,那是看到网络上面看到许多文章对于windows的吐槽和说到Linux的强大,我对于这样的观点态度很明确.对 ...

  9. 【C++从青铜到王者】第一篇:C++入门

    系列文章目录 文章目录 系列文章目录 前言 一.C++概念 二.C++关键字 三.C++命名空间 1.命名空间的定义 2.命名空间的使用 四.C++输入&&输出 五.C++缺省参数 1 ...

  10. 玩转Reactjs第一篇-构建工程(create-react-app)

    一.前言 前期对vue的使用以及源码做了一些介绍和分析,vue由于其易用易学,性能高等特点,吸引越来越多的前端开发者在使用.作为前端框架的三剑客之一的Reactjs,得到了facebook社区大力支持 ...

最新文章

  1. stn,spatial transformer network总结
  2. BZOJ 4849 [NEERC2016] Mole Tunnels (模拟费用流)
  3. Redis 新特性篇:100% 掌握多线程模型
  4. ftp服务器上传文件提示451,解决IIS7之FTP部分文件上传451错误
  5. 标星7000+,这个 Python 艺术二维码生成器厉害了!
  6. 你身边有没有“万事不求人”的人?他们后来怎么样了?
  7. 树形dp 没有上司的舞会
  8. 使用iMazing将iphone的联系人信息导出至电脑
  9. 《打开量化交易的黑箱》读书笔记
  10. heap exploitation巩固——堆中的off-by-one
  11. windwos docker安装k8s一直staring的解决方法
  12. Google退出内地市场
  13. 《暗时间》----读书笔记
  14. 基于Linux的树莓派和电脑之间的串口通信编程
  15. 二叉树的深度怎么算(Java代码实现)
  16. 好的网站好的论坛社区
  17. 如何使用html实现在线秒表,js实现简单的秒表
  18. STC系列单片机内部EEPROM 测试程序
  19. 2021年煤矿采煤机(掘进机)操作模拟试题及煤矿采煤机(掘进机)操作证考试
  20. 2021年中国帆船短裤市场趋势报告、技术动态创新及2027年市场预测

热门文章

  1. SAP MM 采购信息记录里的Automatic Sourcing
  2. SAP RETAIL初阶MM41创建商品主数据BASIC DATA里的Valuation Class
  3. SAP MM MIGO界面上的Freight标签页
  4. GAN、云原生、分布式系统、自动驾驶…哪些技术撑起今年618?
  5. 科大讯飞与优刻得、寒武纪等联合设立合肥智能语音创新发展有限公司
  6. 阿里打破自然语言理解世界纪录,AI常识推理水平正在逼近人类
  7. 《亮剑》,我看了不下五遍。
  8. 跌宕中,特斯拉拿下上海工厂,给蔚来们留下不到两年窗口期
  9. (完全解决)(numba)TypingError: Failed in nopython mode pipeline( Invalid use of Function)
  10. IPython、python shell(command line)、pycharm,python,python IDLE的区别是什么?