mirror of
https://git.mirrors.martin98.com/https://github.com/sub-store-org/Sub-Store.git
synced 2025-04-23 14:19:32 +08:00
Merge pull request #430 from Aritro37/master
feat: 支持通过.env配置环境变量,后端支持设置前置路由
This commit is contained in:
commit
bb5c9d43d0
@ -27,6 +27,7 @@
|
|||||||
"automerge": "1.0.1-preview.7",
|
"automerge": "1.0.1-preview.7",
|
||||||
"body-parser": "^1.19.0",
|
"body-parser": "^1.19.0",
|
||||||
"buffer": "^6.0.3",
|
"buffer": "^6.0.3",
|
||||||
|
"dotenv": "^16.4.7",
|
||||||
"connect-history-api-fallback": "^2.0.0",
|
"connect-history-api-fallback": "^2.0.0",
|
||||||
"cron": "^3.1.6",
|
"cron": "^3.1.6",
|
||||||
"dns-packet": "^5.6.1",
|
"dns-packet": "^5.6.1",
|
||||||
|
@ -24,11 +24,30 @@ import registerParserRoutes from './parser';
|
|||||||
export default function serve() {
|
export default function serve() {
|
||||||
let port;
|
let port;
|
||||||
let host;
|
let host;
|
||||||
|
let prefix;
|
||||||
if ($.env.isNode) {
|
if ($.env.isNode) {
|
||||||
|
const dotenv = eval(`require("dotenv")`);
|
||||||
|
dotenv.config();
|
||||||
port = eval('process.env.SUB_STORE_BACKEND_API_PORT') || 3000;
|
port = eval('process.env.SUB_STORE_BACKEND_API_PORT') || 3000;
|
||||||
host = eval('process.env.SUB_STORE_BACKEND_API_HOST') || '::';
|
host = eval('process.env.SUB_STORE_BACKEND_API_HOST') || '::';
|
||||||
|
prefix = eval('process.env.SUB_STORE_BACKEND_PATH_PREFIX');
|
||||||
|
if (prefix && !prefix.startsWith("/")){
|
||||||
|
prefix = '/${prefix}'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const $app = express({ substore: $, port, host });
|
const $app = express({ substore: $, port, host });
|
||||||
|
if (prefix && prefix.length >= 2){
|
||||||
|
$app.use((req, res, next) => {
|
||||||
|
if (req.path.startsWith(prefix)) {
|
||||||
|
const newPath = req.url.replace(prefix, '') || '/';
|
||||||
|
req.url = newPath;
|
||||||
|
next();
|
||||||
|
} else {
|
||||||
|
res.status(403).send();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
// register routes
|
// register routes
|
||||||
registerCollectionRoutes($app);
|
registerCollectionRoutes($app);
|
||||||
registerSubscriptionRoutes($app);
|
registerSubscriptionRoutes($app);
|
||||||
@ -216,7 +235,7 @@ export default function serve() {
|
|||||||
app.use(
|
app.use(
|
||||||
be_share_rewrite,
|
be_share_rewrite,
|
||||||
createProxyMiddleware({
|
createProxyMiddleware({
|
||||||
target: `http://127.0.0.1:${port}`,
|
target: `http://127.0.0.1:${port}${prefix}`,
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
pathRewrite: async (path, req) => {
|
pathRewrite: async (path, req) => {
|
||||||
if (req.method.toLowerCase() !== 'get')
|
if (req.method.toLowerCase() !== 'get')
|
||||||
@ -237,7 +256,7 @@ export default function serve() {
|
|||||||
app.use(
|
app.use(
|
||||||
be_api_rewrite,
|
be_api_rewrite,
|
||||||
createProxyMiddleware({
|
createProxyMiddleware({
|
||||||
target: `http://127.0.0.1:${port}${be_api}`,
|
target: `http://127.0.0.1:${port}${prefix}${be_api}`,
|
||||||
pathRewrite: async (path) => {
|
pathRewrite: async (path) => {
|
||||||
return path.includes('?')
|
return path.includes('?')
|
||||||
? `${path}&share=true`
|
? `${path}&share=true`
|
||||||
@ -248,7 +267,7 @@ export default function serve() {
|
|||||||
app.use(
|
app.use(
|
||||||
be_download_rewrite,
|
be_download_rewrite,
|
||||||
createProxyMiddleware({
|
createProxyMiddleware({
|
||||||
target: `http://127.0.0.1:${port}${be_download}`,
|
target: `http://127.0.0.1:${port}${prefix}${be_download}`,
|
||||||
changeOrigin: true,
|
changeOrigin: true,
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
@ -269,10 +288,10 @@ export default function serve() {
|
|||||||
$.info(`[FRONTEND] ${fe_address}:${fe_port}`);
|
$.info(`[FRONTEND] ${fe_address}:${fe_port}`);
|
||||||
if (fe_be_path) {
|
if (fe_be_path) {
|
||||||
$.info(
|
$.info(
|
||||||
`[FRONTEND -> BACKEND] ${fe_address}:${fe_port}${be_api_rewrite} -> http://127.0.0.1:${port}${be_api}`,
|
`[FRONTEND -> BACKEND] ${fe_address}:${fe_port}${be_api_rewrite} -> http://127.0.0.1:${port}${prefix}${be_api}`,
|
||||||
);
|
);
|
||||||
$.info(
|
$.info(
|
||||||
`[FRONTEND -> BACKEND] ${fe_address}:${fe_port}${be_download_rewrite} -> http://127.0.0.1:${port}${be_download}`,
|
`[FRONTEND -> BACKEND] ${fe_address}:${fe_port}${be_download_rewrite} -> http://127.0.0.1:${port}${prefix}${be_download}`,
|
||||||
);
|
);
|
||||||
$.info(
|
$.info(
|
||||||
`[SHARE BACKEND] ${fe_address}:${fe_port}${be_share_rewrite}`,
|
`[SHARE BACKEND] ${fe_address}:${fe_port}${be_share_rewrite}`,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user