我已经从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);
});
答案 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端点中可用。您可以将其更改为任何内容。为解析服务器和仪表板分别创建端点。