Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – 如何使用MongoDB在Heroku上托管我自己的解析服务器?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
(要明确,我在提出这个问题,以提供我的答案,我努力帮助其他同样受到Parse闭包影响)

Parse.com最近宣布,他们正在关闭商店2017年1月,但幸运的是他们已经使他们的Parse Server software open source,所以我们可以所有托管我们自己的Parse服务器实例。

我已经研究了可用于托管Parse Server的各种选项,并决定在Heroku托管我的

我喜欢Parse,因为它很容易使用,我没有真正的设置后端的经验。我试图在网上跟踪几个指南,但发现他们都有点难以理解与模糊的步骤或步骤,带你下来一个兔子洞在另一个网站安装一堆工具,这一切都有点混乱。

如何在Heroku上托管Parse Server,将其设置为接受来自我的应用程序的跨域请求,创建MongoDB数据库,并将所有数据从Parse迁移到新数据库

解决方法

Heroku上的自承载分析服务器

设置Heroku,MongoDB和Parse

>访问https://signup.heroku.com/注册一个帐户
>验证您的电子邮件,并登录Heroku
>转到Deploying a Parse Server to Heroku
>单击“部署到Heroku”

node.js – 如何使用MongoDB在Heroku上托管我自己的解析服务器?

>给你的解析服务器一个名字
>暂时略过应用程式的APP_ID和MASTER_KEY,我们将在后面的步骤中设定。
>点击“免费部署”

node.js – 如何使用MongoDB在Heroku上托管我自己的解析服务器?

>如果出现以下框,请输入您的信用卡信息以验证您的帐户。不要担心,您不会被收取,除非您以后升级您的帐户。这只是一个安全措施,Heroku已经到位,以防止滥用。

node.js – 如何使用MongoDB在Heroku上托管我自己的解析服务器?

> Heroku将创建您的应用程序。在后台它还将为您创建一个.git repo并克隆official parse-server-example git repo内容,创建@L_556_3@mongoDB数据库,并配置您的Heroku应用程序使用该数据库
>当应用程序创建时,您将转到它的Heroku信息中心,或者您可以登录,点击“个人应用程序”,然后单击您的解析服务器的名称
>在应用的信息中心上,点击“设置”,然后点击“显示配置vars”

node.js – 如何使用MongoDB在Heroku上托管我自己的解析服务器?

>填写您应用程式的APP_ID和MASTER_KEY。如果您现在在Parse.com上有一个应用程序,您可以使用它使用的相同的键。您可以访问https://www.parse.com/apps/\u0026lt;APP_NAME\u0026gt;/edit#keys其中< APP_NAME>是您的应用程序的名称。如果你正在创建一个新的应用程序,你可以generate random keys here.你可以为任何你想要使用的sdks添加新的键,我在这里为Javascript sdk添加一个

node.js – 如何使用MongoDB在Heroku上托管我自己的解析服务器?

>记下MONGOLAB_URI的值,如果要将现有的Parse数据迁移到新的DB,稍后将需要此值
>向下滚动并记下您的应用程序的Git Url和Heroku域,稍后您将需要这些域

node.js – 如何使用MongoDB在Heroku上托管我自己的解析服务器?

>安装Heroku Toolbelt这是一个命令行界面工具,用于管理您的Heroku应用程序。
>打开终端提示符并输入$ heroku登录,输入您的Heroku电子邮件和密码
>输入$ heroku git:clone -a< MY_APP_NAME> (其中< MY_APP_NAME>是您的heroku应用程序的名称)来创建服务器代码仓库​​的本地副本,您还可以使用我们之前看到的git url。当您克隆repo时,您将看到消息“warning:您似乎克隆了一个空存储库。应用程序文件夹将被创建,但它将只包含标准的git文件,没有解析服务器。解决这个问题。转到official parse-server-example git repo,下载repo的zip文件。解压缩文件夹,将所有文件文件夹从parse-server-example-master文件夹拖放到应用程序文件夹中。
>返回终端,输入$ cd< MY_APP_NAME>移动到仓库

启用CORS(以便您可以使用其他网域的API)

>在您的硬盘驱动器上,找到并打开我们刚刚创建的repo的本地副本
>在文件夹中,打开package.json并将“cors”:“*”添加到依赖项中,如下所示:

"dependencies": {
    "express": "~4.2.x","kerberos": "~0.0.x","parse": "~1.6.12","parse-server": "~2.0",// <= don't forget this comma
    "cors": "*"                // add this line
  }

注意

请确保在实际代码删除上述注释,因为它不是有效的JSON

>打开index.js并进行以下更改:

var express = require('express');  // find this line in the file
var cors = require('cors') // add this line below it

//....


//var databaseUri = process.env.DATABASE_URI || process.env.MONGOLAB_URI // old name,you may need to change this for new deployments
var databaseUri = process.env.DATABASE_URI || process.env.MONGODB_URI  // changed to MONGODB_URI in Heroku!

//....

var app = express();  // find this line in the file
app.use(cors()); // add this line below it

//Add declarations for any keys you plan to use as shown below
var api = new ParseServer({
  databaseURI: databaseUri || 'mongodb://localhost:27017/dev',cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',appId: process.env.APP_ID || 'myAppId',masterKey: process.env.MASTER_KEY || '',serverURL: process.env.SERVER_URL || 'http://localhost:1337',javascriptKey: process.env.JAVASCRIPT_KEY || '',//** add this line no need to set values,they will be overwritten by heroku config vars
  restAPIKey: process.env.REST_API_KEY || '',//** add this line
  dotNetKey: process.env.DOT_NET_KEY || '',//** add this line
  clientKey: process.env.CLIENT_KEY || '',//** add this line
});

>回到终端窗口,确保你仍然在我们克隆的repo的文件夹,并输入以下推送更改Heroku:

$ git add .
$ git commit -am "make it better"
$ git push heroku master

测试新的Parse服务器

>转到这个jsFiddle page
>更改< MY_APP_ID>,< MY_JS_KEY>,< MY_HEROKU_APP_NAME>在适当的值为您的应用程序,然后单击“运行”

Parse.initialize('<MY_APP_ID>','<MY_JS_KEY>');
Parse.serverURL = 'https://<MY_HEROKU_APP_NAME>.herokuapp.com/Parse'

>您应该得到以下警报,让您知道您的新的Parse服务器正常工作

node.js – 如何使用MongoDB在Heroku上托管我自己的解析服务器?

注意:

如果您对多个解析服务器实例使用jsfiddle工具,您可能会收到错误“无效会话令牌”。如果发生这种情况,打开开发控制台,并删除所有的“解析”键从本地存储,之后,它应该工作:

node.js – 如何使用MongoDB在Heroku上托管我自己的解析服务器?

从Parse迁移现有数据

在迁移生产应用程序之前,应至少使用一个测试应用程序执行此操作。此外,似乎旧的应用程序的遗留文件可能还没有传输,见this GitHub Issue

>在我们迁移之前,如果你的新MongoDB有数据,迁移将失败。如果您只是测试服务器并创建和对象,请转到https://dashboard.heroku.com/apps/\u0026lt;MY_HEROKU_APP_NAME\u0026gt;/resources,点击其图标旁边的“MongoLab”,然后在下一页上单击“删除所有集合“
>前往https://dashboard.parse.com/apps/\u0026lt;APP_NAME\u0026gt;/setTings/general其中< APP_NAME>是您的解析应用程序的名称
>向下滚动页面,然后单击“迁移”
>在模态,在灰色区域(这看起来不像一个输入…)输入MONGOLAB_URI,我们注意到早期
>点击“开始迁移”

@L_404_18@

>迁移完成后,单击“完成”,然后在弹出窗口中单击“确定”,当迁移是最终的,所有的数据将在您的新的MongoDB数据库

node.js – 如何使用MongoDB在Heroku上托管我自己的解析服务器?

>现在,您的Parse仪表板将继续显示现在位于新数据库中的数据。要测试一切,回到我们之前使用的测试jsfiddle,并再次运行它。现在,转到您的Parse仪表板,您应该看到新添加的类和行。注意,当我使用新的Parse仪表板时,我可以看到行数,但行区域全部为空。我回到了旧的Parse仪表板,可以看到一切都很好。

大佬总结

以上是大佬教程为你收集整理的node.js – 如何使用MongoDB在Heroku上托管我自己的解析服务器?全部内容,希望文章能够帮你解决node.js – 如何使用MongoDB在Heroku上托管我自己的解析服务器?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。