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

时间:2019-03-25 01:28:42

标签: node.js amazon-ec2 parse-platform parse-server bitnami

我已经从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 AND 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);
});

1 个答案:

答案 0 :(得分:1)

解析仪表板的安装点在此行中定义:

app.use('/', dashboard);

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

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

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

现在,如果要以根路由(/)或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的表达框架。

更新: 解析API和仪表板是两个独立的东西。您只能运行分析服务器,而不能运行仪表板,反之亦然。在您的代码中,将解析服务器安装在/ parse端点中。看这行

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

因此,解析服务器现在在/ parse端点中可用。您可以将其更改为任何内容。为解析服务器和仪表板分别创建端点。