Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
解析服务器和node.js基础入门_Node.js_Amazon Ec2_Parse Platform_Parse Server_Bitnami - Fatal编程技术网

解析服务器和node.js基础入门

解析服务器和node.js基础入门,node.js,amazon-ec2,parse-platform,parse-server,bitnami,Node.js,Amazon Ec2,Parse Platform,Parse Server,Bitnami,我已经从AWS market place安装了bitnami解析服务器,为iOS应用程序提供后端。在iOS应用程序中,API是在下面配置的,当我转到我认为应该是主页的地方时,它会将我重定向到位于的解析仪表板。我希望为我的应用程序提供一个主页,而不是重定向到解析仪表板,以便构建一个web应用程序,共享应用程序使用的相同数据。这是我第一个使用node.js的项目,所以我希望有人能在几个主题上为我指出正确的方向。我以前的web应用程序工作总是在LAMP堆栈上,所以我很好奇: 我假设iOS使用的解析后

我已经从AWS market place安装了bitnami解析服务器,为iOS应用程序提供后端。在iOS应用程序中,API是在下面配置的,当我转到我认为应该是主页的地方时,它会将我重定向到位于的解析仪表板。我希望为我的应用程序提供一个主页,而不是重定向到解析仪表板,以便构建一个web应用程序,共享应用程序使用的相同数据。这是我第一个使用node.js的项目,所以我希望有人能在几个主题上为我指出正确的方向。我以前的web应用程序工作总是在LAMP堆栈上,所以我很好奇:

  • 我假设iOS使用的解析后端也可以是通过浏览器访问的web应用程序的后端,对吗
  • 当我在/home/bitnami/apps/parse/htdocs分析server.js中的代码时,我没有看到重定向到myURL.com/apps的函数,我是否应该关注另一个方面来理解myURL.com如何重定向到apps文件夹
  • 我注意到/home/binami/apps/rockmongo中存在一个文件夹,其中包含php脚本的安装说明,我的AWS实例能否运行php和node.js,或者安装LAMP堆栈是否会干扰node.js堆栈
  • 我相信这方面有一些很好的文档和/或教程,你能帮助我通过提供正确的方式来表达谷歌搜索或者甚至更好的方式来开始教程本身的链接吗
对于上下文,我的iOS允许用户登录并允许他们上载图像以解析服务器类,我只想让用户使用具有用户/文件类的同一解析服务器登录并从web浏览器上载图像

下面是server.js,它似乎以某种方式将请求从myURL.com定向到myURL.com/apps,以供参考:

require('dotenv').config();
var express = require('express');
var ParseServer = require('parse-server').ParseServer;
var app = express();
// Specify the connection string for your mongodb database
// and the location to your Parse cloud code
var api = new ParseServer({
    databaseURI: "mongodb://root:9dh********@127.0.0.1:27017/bitnami_parse",
    cloud: "./node_modules/parse-server/lib/cloud-code/Parse.Cloud.js",
    appId: "19defd7********",
    masterKey: "cd8********",
    fileKey: "3bce6********",
    serverURL: "http://54.**.**.**:80/parse",
    filesAdapter: {
        "module": "@parse/s3-files-adapter",
        "options": {
            "bucket": process.env.S3_BUCKET,
        }
    },
});
// Serve the Parse API on the /parse URL prefix
app.use('/parse', api);

var port = 1337;
app.listen(port, function() {
    console.log('parse-server running on port ' + port);
});

//Parse Dashboard
var ParseDashboard = require('parse-dashboard');
var dashboard = new ParseDashboard({
    apps: [
        {
            appName: "My Bitnami Parse API",
            appId: "19defd7********",
            masterKey: "cd8d*******",
            fileKey: "3bce6********",
            production: true,
            serverURL: "http://54.**.**.**:80/parse"
        }
    ],
    users: [
        {
            user: process.env.ADMIN_USER,
            pass: process.env.ADMIN_PASSWORD
        }
    ], useEncryptedPasswords: true
});

var allowInsecureHTTP = true;

// Serve the Parse Dashboard on the /parsedashboard URL prefix
app.use('/', dashboard);

var portdash = 4040;
app.listen(portdash, function() {
    console.log('parse-dashboard running on port ' + portdash);
});

此行定义了Parse Dashboard的装入点:

app.use('/', dashboard);
如果要为仪表板使用单独的安装点,可以执行以下操作:

app.use('/dashboard', dashboard);
更改后,如果点击它,将在/dashboard/apps中加载仪表板。”/应用程序的端点由分析仪表板本身处理

现在,如果您想在根路由(/)或中加载您的网站,您需要创建另一个路由(假设您现在想为静态站点提供服务)

要为静态站点提供服务,您需要创建一个文件夹,从中为静态站点提供服务。在本例中,我创建了一个名为public的文件夹,并将我所有的html、css和js放在那里。现在我需要在express中指定静态文件夹。我在第一行就是这么做的。在那之后,我只需创建一个“GET”路由来为index.html提供服务

您还可以做很多其他事情,比如创建API或为动态网站提供服务,以及使用解析服务器。但要做到这一点,您必须首先了解带有nodejs的expressframework

更新: 解析API和仪表板是两个独立的东西。您只能在没有仪表板的情况下运行parse server,反之亦然。在代码中,将解析服务器装入/parse端点。看这条线

app.use('/parse', api);

因此,现在解析服务器在/parse endpoint中可用。你可以把它改成任何东西。为解析服务器和仪表板创建单独的端点

正在更改应用程序。使用(“/”,仪表板);是解决方案,我只想注意新名称(例如app.use('/dashboard',dashboard);)不能以字符串“parse”开头。我试着这么做,但不得不在谷歌上四处搜索,以找出它不起作用的原因,所以我认为这将是一个很好的补充意见。@DanielPatriarca请参阅答案的更新部分。
app.use('/parse', api);