我已经从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浏览器上传图像。
对于以下参考,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);
更改后,如果您点击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端点中可用。您可以将其更改为任何内容。为解析服务器和仪表板创建单独的端点。