玩轉Parse(第一篇:新手入門) 原

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

成功啓動後,可以看到類似這樣的輸出:

> [email protected] 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

> [email protected] 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":[]}

 

搞定,收工!下次繼續說說如何二次開發。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章