前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在Ubuntu 14.04上运行解析服务器

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

原创
作者头像
宇cccc
修改2018-10-22 11:35:58
2.9K0
修改2018-10-22 11:35:58
举报

介绍

Parse是一个移动后端即服务平台,自2013年起由Facebook拥有。2016年1月,Parse 宣布其托管服务将于2017年1月关闭。

为了帮助其用户从服务转移,Parse发布了一个名为Parse Server的后端的开源版本,可以部署到运行Node.js和MongoDB的环境中。

本指南补充了官方文档,其中包含在Ubuntu 14.04系统上安装Parse Server的详细说明,例如腾讯云CVM。它首先是作为正在考虑迁移其应用程序的Parse开发人员的起点,并且应该与官方的Parse Server Guide一起阅读。

准备

一台已经设置好可以使用sudo命令的非root账号的Ubuntu服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器

此外,您的系统将需要一个正在运行的MongoDB实例。通过在创建Droplet时将此脚本添加到其用户数据,MongoDB也可以自动安装在新CVM上。

使用sudo用户和MongoDB 配置系统后,请返回本指南并继续。

第1步 - 安装Node.js和开发工具

首先将当前工作路径更改为sudo用户的主目录:

代码语言:javascript
复制
cd ~

NodeSource为Debian和Ubuntu Node.js包提供了一个Apt存储库。我们将用它来安装Node.js. NodeSource为最新的稳定版本(撰写本文时的v5.5.0)提供了安装脚本,可以在安装说明中找到。下载脚本curl

代码语言:javascript
复制
curl -sL https://deb.nodesource.com/setup_5.x -o nodesource_setup.sh

您可以使用nano或自己选择的文本编辑器打开该脚本的内容:

代码语言:javascript
复制
nano ./nodesource_setup.sh

接下来,运行nodesource_setup.sh。告诉它保留用户的环境变量以便脚本可以访问它们的-E选项sudo

代码语言:javascript
复制
sudo -E bash ./nodesource_setup.sh

脚本完成后,NodeSource存储库应该在系统上可用。我们可以用apt-get来安装nodejs包。我们还将安装build-essentialmetapackage,它提供了一系列可能在以后有用的开发工具,以及用于从GitHub检索项目的Git版本控制系统:

代码语言:javascript
复制
sudo apt-get install -y nodejs build-essential git

第2步 - 安装示例解析服务器应用程序

Parse Server旨在与Express结合使用,Express是Node.js的一个流行的Web应用程序框架,它允许符合定义的API的中间件组件安装在给定的路径上。该解析服务器,例如存储库包含此模式的废止示例实现。

使用以下git命令检索存储库:

代码语言:javascript
复制
git clone https://github.com/ParsePlatform/parse-server-example.git

输入刚刚克隆的parse-server-example目录:

代码语言:javascript
复制
cd ~/parse-server-example

使用npm安装依赖性,包括在当前目录的parse-server,:

代码语言:javascript
复制
npm install

npm将获取所需的所有模块parse-server并将其存储在~/parse-server-example/node_modules其中。

第3步 - 测试示例应用程序

使用npm启动该服务。这将运行package.jsonstart属性中定义的命令。在这种情况下,它运行node index.js

代码语言:javascript
复制
npm start
代码语言:javascript
复制
> 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随时终止正在运行的应用程序。

定义的Express应用程序index.js将HTTP请求传递给parse-server模块,模块又与MongoDB实例通信并调用其中定义的函数~/parse-server-example/cloud/main.js

在这种情况下,Parse Server API调用的端点默认为:

代码语言:javascript
复制
http://your_server_IP/parse

在另一个终端中,您可以使用它curl来测试此端点。确保首先登录到服务器,因为这些命令引用localhost而不是特定的IP地址。

通过发送POST带有X-Parse-Application-Id标头的请求来标识应用程序以及格式化为JSON的一些数据来创建记录:

代码语言:javascript
复制
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
代码语言:javascript
复制
{"objectId":"fu7t4oWLuW","createdAt":"2016-02-02T18:43:00.659Z"}

您发送的数据存储在MongoDB中,可以通过curl发送GET请求来检索:

代码语言:javascript
复制
curl -H "X-Parse-Application-Id: myAppId" http://localhost:1337/parse/classes/GameScore
代码语言:javascript
复制
{"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

代码语言:javascript
复制
curl -X POST \
  -H "X-Parse-Application-Id: myAppId" \
  -H "Content-Type: application/json" \
  -d '{}' \
  http://localhost:1337/parse/functions/hello
代码语言:javascript
复制
{"result":"Hi"}

第4步 - 配置示例应用程序

在原始终端中,按Ctrl-C以停止运行版本的Parse Server应用程序。

如上所述,可以使用六个环境变量来配置示例脚本:

变量

描述

DATABASE_URI

MongoDB连接URI,如 mongodb://localhost:27017/dev

CLOUD_CODE_MAIN

包含Parse Cloud Code函数的文件的路径,如cloud/main.js

APP_ID

您的应用的字符串标识符,例如 myAppId

MASTER_KEY

一个秘密主密钥,允许您绕过所有应用程序的安全机制

PARSE_MOUNT

应该提供Parse Server API的路径,例如 /parse

PORT

应用程序应该监听的端口,例如 1337

您可以在使用该export命令运行脚本之前设置任何这些值。例如:

代码语言:javascript
复制
export APP_ID=fooApp

值得一读的内容index.js,但为了更清楚地了解正在发生的事情,您还可以编写自己的较短版本的示例。在编辑器中打开一个新脚本:

代码语言:javascript
复制
nano my_app.js

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

代码语言:javascript
复制
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运行它:

代码语言:javascript
复制
node my_app.js
代码语言:javascript
复制
parse-server-example running on port 9999.

同样,您可以随时按Ctrl-C停止my_app.js。如上所述,该示例的my_app.js行为几乎与提供的相同index.js,只是它将侦听端口9999,并安装了Parse Server /myparseapp,因此端点URL如下所示:

http:// 您的服务器 IP:9999 / myparseapp

它可以像这样用curl测试:

代码语言:javascript
复制
curl -H "X-Parse-Application-Id: myOtherAppId" http://localhost:9999/myparseapp/classes/GameScore`

结论

您现在应该了解在Ubuntu环境中运行Node.js应用程序(如Parse Server)的基础知识。从Parse完全迁移应用程序可能是一项更为复杂的工作,需要更改代码并仔细规划基础架构。

更多Ubuntu教程请前往腾讯云+社区学习更多知识。


参考文献:《How To Run Parse Server on Ubuntu 14.04》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
    • 准备
      • 第1步 - 安装Node.js和开发工具
        • 第2步 - 安装示例解析服务器应用程序
          • 第3步 - 测试示例应用程序
            • 第4步 - 配置示例应用程序
              • 结论
              相关产品与服务
              云数据库 MongoDB
              腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档