开始使用parse server和node.js基础知识

问题描述 投票:0回答:1

我已经从AWS市场安装了bitnami解析服务器,以便为iOS应用程序提供后端。在iOS应用程序中,API在http://myURL.com/parse下配置,当我转到我认为的主页http://myURL.com时,它会将我重定向到位于http://myURL.com/apps的解析仪表板。我想让http://myURL.com为我的应用程序提供主页,而不是重定向到解析仪表板,以便可以构建一个共享应用程序使用的相同数据的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堆栈?
  • 我相信这里有一些很棒的文档和/或教程,你能帮我开始提供正确的方法来表达google搜索,甚至更好地指导教程本身的链接吗?

对于上下文,我的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);
});
node.js amazon-ec2 parse-platform parse-server bitnami
1个回答
1
投票

Parse Dashboard的挂载点在此行中定义:

app.use('/', dashboard);

如果要为仪表板使用单独的安装点,可以执行以下操作:

app.use('/dashboard', dashboard);

更改后,如果您点击http://myURL.com/dashboard,它将在/ dashboard / apps中加载仪表板。 '/ apps'端点由解析仪表板本身处理。

现在,如果您想要以root路由(/)或http://myURL.com加载您的网站,您需要创建另一条路线(假设您现在想要提供静态网站)

app.use('/public', express.static(path.join(__dirname, '/public'), {
   etag: true
}));

app.get('/', function (req, res) {
   res.sendFile(path.join(__dirname, '/public/index.html'));
});

要为静态站点提供服务,您需要创建一个文件夹,用于为静态站点提供服务。在这种情况下,我创建了一个名为public的文件夹,并将所有html,css,js放在那里。现在我需要在express中指定静态文件夹。这就是我在第一行所做的。之后,我只是通过创建'GET'路线来服务index.html。

您可以执行许多其他操作,例如创建API或提供动态网站以及使用解析服务器。但要做到这一点,你必须先了解nodejs的表达框架。

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

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

所以现在解析服务器在/ parse端点中可用。您可以将其更改为任何内容。为解析服务器和仪表板创建单独的端点。

© www.soinside.com 2019 - 2024. All rights reserved.