如何在Ubuntu 14.04运行解析服务器

解析是移动后端即服务平台。在2016年1月,解析宣布其托管服务将在一年内关闭。为了帮助其用户过渡从服务了,解析发布了其后端的开源版本,称为解析服务器。本指南补充与一个Ubuntu 14.04系统上安装解析服务器模块的说明,如DigitalOceanDroplet的官方文档。

介绍

解析是移动后端即服务平台,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
> 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
{"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
{"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
{"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

并粘贴以下内容,根据需要更改突出显示的值:

〜/ parse-server-example / 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
parse-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服务器解析 你也应该引用官方解析服务器指南 ,特别是在部分迁移现有的应用程序解析