玩转Parse(第一篇:新手入门)

本文深入解析Parse框架,一个基于Node.js和MongoDB的开源后端即服务平台。文章涵盖Parse的安装、配置及运行过程,探讨了不同环境下的安装策略,包括全局安装、本地安装和生产环境部署,同时提供了详细的步骤和常见问题解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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 required

npm 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-server


Enter 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-files

Successfully 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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值