介绍
解析是移动后端即服务平台,2013年以来被Facebook所拥有在2016年1月,解析宣布 ,其托管服务将关闭在2017年月份。
为了帮助其转型的用户从服务了,解析已经发布了其后端,称为解析服务器 ,它可以部署到运行的Node.js和MongoDB环境的一个开源版本。
本指南补充官方文档以及在Ubuntu 14.04系统(如DigitalOcean Droplet)上安装Parse Server的详细说明。 它首先是打算作为一个起点,谁正在考虑迁移他们的应用程序开发人员解析,并应与官方一起阅读解析服务器指南 。
先决条件
本指南假设你有一个干净的Ubuntu 14.04系统,用非root用户配置的sudo
权限管理任务。 您不妨审查在导游的新的Ubuntu 14.04服务器清单系列。
此外,您的系统将需要一个运行的MongoDB实例。 你可以通过工作开始如何在Ubuntu 14.04安装MongoDB的 。 MongoDB中也可以自动在新的Droplet通过加入安装此脚本创建时,它向它的用户数据。 查看本教程以了解更多有关Droplet的用户数据。
一旦你的系统配置了sudo
用户和MongoDB,返回到本指南并继续。
第1步 - 安装Node.js和开发工具
通过改变当前工作路径到你开始sudo
用户的主目录:
cd ~
NodeSource提供Debian和Ubuntu的软件包的Node.js APT仓库。 我们将使用它来安装Node.js. NodeSource提供了一个安装脚本的最新的稳定版本(V5.5.0在写这篇文章的时候),它可以在中找到安装说明 。 下载的脚本curl
:
curl -sL https://deb.nodesource.com/setup_5.x -o nodesource_setup.sh
您可以通过它打开查看此脚本的内容nano
,或您选择的文本编辑器:
nano ./nodesource_setup.sh
接下来,运行nodesource_setup.sh
。 该-E
选项sudo
告诉它以保护用户的环境变量,使他们可以通过脚本访问:
sudo -E bash ./nodesource_setup.sh
一旦脚本完成,NodeSource存储库应该在系统上可用。 我们可以使用apt-get
安装nodejs
包。 我们还将安装build-essential
元数据包,它提供了一系列的开发工具,后来可能是有用的,并从GitHub获取项目的Git版本控制系统:
sudo apt-get install -y nodejs build-essential git
第2步 - 安装示例解析服务器应用程序
解析服务器被设计成使用Express,为的Node.js一个流行的Web应用程序框架,它允许符合一个定义的API中间件组件被安装在给定路径上的结合使用。 在解析服务器,例如存储库包含此模式的废止示例实现。
检索与存储库git
:
git clone https://github.com/ParsePlatform/parse-server-example.git
输入parse-server-example
刚刚克隆目录:
cd ~/parse-server-example
使用npm
安装依赖性,包括parse-server
,在当前目录:
npm install
npm
将获取所有所要求的模块parse-server
,并将它们存储在~/parse-server-example/node_modules
。
第3步 - 测试示例应用程序
使用npm
启动该服务。 这将运行在定义的命令start
财产package.json
。 在这种情况下,它运行node index.js
:
npm start
Output> parse-server-example@1.0.0 start /home/sammy/parse-server-example
> node index.js
DATABASE_URI not specified, falling back to localhost.
parse-server-example running on port 1337.
您可以通过按Ctrl-C随时终止正在运行的应用程序。
中定义的快捷应用index.js
将传递到HTTP请求parse-server
模块,从而与您的MongoDB实例进行通信,并调用自定义函数~/parse-server-example/cloud/main.js
。
在这种情况下,Parse Server API调用的端点默认为:
http:// your_server_IP /parse
在另一端,你可以用curl
来测试这个端点。 请确保你登录到你的服务器首先,因为这些命令引用localhost
特定的IP地址而不是。
通过发送创建一个记录POST
用请求X-Parse-Application-Id
头标识应用程序,以JSON格式的一些数据一起:
curl -X POST \
-H "X-Parse-Application-Id: myAppId" \
-H "Content-Type: application/json" \
-d '{"score":1337,"playerName":"Sammy","cheatMode":false}' \
http://localhost:1337/parse/classes/GameScore
Output{"objectId":"fu7t4oWLuW","createdAt":"2016-02-02T18:43:00.659Z"}
你发送的数据存储在MongoDB的,并且可以通过使用检索curl
发送GET
请求:
curl -H "X-Parse-Application-Id: myAppId" http://localhost:1337/parse/classes/GameScore
Output{"results":[{"objectId":"GWuEydYCcd","score":1337,"playerName":"Sammy","cheatMode":false,"updatedAt":"2016-02-02T04:04:29.497Z","createdAt":"2016-02-02T04:04:29.497Z"}]}
在运行中定义的函数~/parse-server-example/cloud/main.js
:
curl -X POST \
-H "X-Parse-Application-Id: myAppId" \
-H "Content-Type: application/json" \
-d '{}' \
http://localhost:1337/parse/functions/hello
Output{"result":"Hi"}
第4步 - 配置示例应用程序
在原来的终端,按Ctrl-C停止解析服务器应用程序的运行版本。
作为写入的示例脚本可通过使用六个被配置环境变量 :
变量 | 描述 |
---|---|
DATABASE_URI |
一个MongoDB的连接URI,如mongodb://localhost:27017/dev |
CLOUD_CODE_MAIN |
包含文件的路径解析云码功能 ,像cloud/main.js |
APP_ID |
你的应用程序的字符串标识符,如myAppId |
MASTER_KEY |
一个秘密主密钥,允许您绕过所有的应用程序的安全机制 |
PARSE_MOUNT |
其中解析服务器API应服,如路径/parse |
PORT |
端口应用程序应侦听,像1337 |
您可以用运行脚本之前设置这些值的export
命令。 例如:
export APP_ID=fooApp
这是值得通过的内容读index.js
,但为了得到这是怎么回事的更清晰的画面,你也可以编写自己的例子较短的版本。 在编辑器中打开一个新脚本:
nano my_app.js
并粘贴以下内容,根据需要更改突出显示的值:
var express = require('express');
var ParseServer = require('parse-server').ParseServer;
// Configure the Parse API
var api = new ParseServer({
databaseURI: 'mongodb://localhost:27017/dev',
cloud: __dirname + '/cloud/main.js',
appId: 'myOtherAppId',
masterKey: 'myMasterKey'
});
var app = express();
// Serve the Parse API on the /parse URL prefix
app.use('/myparseapp', api);
// Listen for connections on port 1337
var port = 9999;
app.listen(port, function() {
console.log('parse-server-example running on port ' + port + '.');
});
退出并保存文件,然后使用Node.js运行它:
node my_app.js
Outputparse-server-example running on port 9999.
同样,你可以在任何时候按Ctrl-C停止my_app.js
。 正如上面写的,样品my_app.js
的行为几乎相同的规定index.js
,但它会监听端口9999,以解析服务器安装在/myparseapp
,使端点URL看起来像这样:
HTTP:// 服务器 IP:9999 / myparseapp
它可以与被测试curl
,像这样:
curl -H "X-Parse-Application-Id: myOtherAppId" http://localhost:9999/myparseapp/classes/GameScore`
结论
您现在应该知道在Ubuntu环境中运行Node.js应用程序(如Parse Server)的基础知识。 从Parse完全迁移应用程序可能是一个更加复杂的事情,需要代码更改和基础设施的仔细规划。
有关此过程更多的细节,请参阅本系列的第二导向如何迁移解析应用程序在Ubuntu 14.04服务器解析 。 你也应该引用官方解析服务器指南 ,特别是在部分迁移现有的应用程序解析 。