玩转Parse(第一篇:新手入门)
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(第一篇:新手入门)相关推荐
- 利用51单片机+hc595芯片配合在led点阵上玩贪吃蛇 第一篇“显示贪吃蛇”
利用51单片机+hc595芯片配合在led点阵上玩贪吃蛇 第一篇"显示贪吃蛇" 完整的项目链接: https://github.com/linxinloningg/51_chip_ ...
- 公开课 | 解密HW究竟怎么玩?之 第一篇
HW目的 检测国家关键基础设施与单位备案重要信息系统的安全问题和隐患,检验其事件监测.安全防护与应急处置,快速协同.应急处突的能力. HW目标 涉及的行业众多.范围广泛,包含政府.金融.电力.运营商. ...
- Electron系列教程——第一篇:入门
Electron系列教程--第一篇:入门 一.楔子 想要学习Electron,跟着官网或者中文网,仔细阅读,并实践,其实是够了,不必要重复.那为什么还要写这个系列呢?大概有两方面原因,其一:我使用el ...
- vue 单相绑定_Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)...
Vuejs第一篇之入门教程详解(单向绑定.双向绑定.列表渲染.响应函数) 2018-12-30 什么是组件? 组件(Component)是 Vue.js 最强大的功能之一.组件可以扩展 HTML 元素 ...
- pytorch 指定卡1_[原创][深度][PyTorch] DDP系列第一篇:入门教程
引言 DistributedDataParallel(DDP)是一个支持多机多卡.分布式训练的深度学习工程方法.PyTorch现已原生支持DDP,可以直接通过torch.distributed使用,超 ...
- 第一篇-python入门
Python入门 一 编程与编程语言 python是一门编程语言,作为学习python的开始,需要事先搞明白:编程的目的是什么?什么是编程语言?什么是编程? 编程的目的: #计算机的发明,是为了用机器 ...
- 武侠乂怎么修改服务器,武侠乂新手怎么玩 武侠乂手游新手入门技巧
武侠乂新手怎么玩?武侠乂是一款高自由度的动作冒险竞技游戏,游戏中我们将扮演一名武侠与其他玩家角逐第一,今天小辰给大家介绍武侠乂新手攻略技巧,想知道如何玩好武侠乂吗,一起来看看吧! 武侠乂新手技巧 1, ...
- 《玩转Deepin第一篇 · Deepin系统的介绍和安装》
写在前面,我使用Deepin系统的大概有三年的时间,在大一的时候系统学习计算机的知识,那是看到网络上面看到许多文章对于windows的吐槽和说到Linux的强大,我对于这样的观点态度很明确.对 ...
- 【C++从青铜到王者】第一篇:C++入门
系列文章目录 文章目录 系列文章目录 前言 一.C++概念 二.C++关键字 三.C++命名空间 1.命名空间的定义 2.命名空间的使用 四.C++输入&&输出 五.C++缺省参数 1 ...
- 玩转Reactjs第一篇-构建工程(create-react-app)
一.前言 前期对vue的使用以及源码做了一些介绍和分析,vue由于其易用易学,性能高等特点,吸引越来越多的前端开发者在使用.作为前端框架的三剑客之一的Reactjs,得到了facebook社区大力支持 ...
最新文章
- stn,spatial transformer network总结
- BZOJ 4849 [NEERC2016] Mole Tunnels (模拟费用流)
- Redis 新特性篇:100% 掌握多线程模型
- ftp服务器上传文件提示451,解决IIS7之FTP部分文件上传451错误
- 标星7000+,这个 Python 艺术二维码生成器厉害了!
- 你身边有没有“万事不求人”的人?他们后来怎么样了?
- 树形dp 没有上司的舞会
- 使用iMazing将iphone的联系人信息导出至电脑
- 《打开量化交易的黑箱》读书笔记
- heap exploitation巩固——堆中的off-by-one
- windwos docker安装k8s一直staring的解决方法
- Google退出内地市场
- 《暗时间》----读书笔记
- 基于Linux的树莓派和电脑之间的串口通信编程
- 二叉树的深度怎么算(Java代码实现)
- 好的网站好的论坛社区
- 如何使用html实现在线秒表,js实现简单的秒表
- STC系列单片机内部EEPROM 测试程序
- 2021年煤矿采煤机(掘进机)操作模拟试题及煤矿采煤机(掘进机)操作证考试
- 2021年中国帆船短裤市场趋势报告、技术动态创新及2027年市场预测
热门文章
- SAP MM 采购信息记录里的Automatic Sourcing
- SAP RETAIL初阶MM41创建商品主数据BASIC DATA里的Valuation Class
- SAP MM MIGO界面上的Freight标签页
- GAN、云原生、分布式系统、自动驾驶…哪些技术撑起今年618?
- 科大讯飞与优刻得、寒武纪等联合设立合肥智能语音创新发展有限公司
- 阿里打破自然语言理解世界纪录,AI常识推理水平正在逼近人类
- 《亮剑》,我看了不下五遍。
- 跌宕中,特斯拉拿下上海工厂,给蔚来们留下不到两年窗口期
- (完全解决)(numba)TypingError: Failed in nopython mode pipeline( Invalid use of Function)
- IPython、python shell(command line)、pycharm,python,python IDLE的区别是什么?