fix some routing
This commit is contained in:
parent
c738a7d69d
commit
2f91709179
6 changed files with 83 additions and 14 deletions
|
|
@ -1 +1,2 @@
|
||||||
API_KEYS=key1,key2,key3
|
API_KEYS=key1,key2,key3
|
||||||
|
#PORT=
|
||||||
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -1,2 +1,3 @@
|
||||||
node_modules
|
node_modules
|
||||||
.env
|
.env
|
||||||
|
src/Assets/urls.json
|
||||||
2
src/Assets/ads.txt
Normal file
2
src/Assets/ads.txt
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
#AdSense Ads.txt for pub-9097891430264009
|
||||||
|
google.com, pub-9097891430264009, DIRECT, f08c47fec0942fa0
|
||||||
19
src/Routes/ads.js
Normal file
19
src/Routes/ads.js
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const fs = require('fs');
|
||||||
|
|
||||||
|
router.get('/ads.txt', (req, res) => {
|
||||||
|
fs.readFile('src/Assets/ads.txt', 'utf8', (err, data) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err);
|
||||||
|
res.status(500).send('Internal Server Error');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
res.type('text/plain').send(data);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
basePath: '/',
|
||||||
|
router: router
|
||||||
|
};
|
||||||
21
src/Routes/urls.js
Normal file
21
src/Routes/urls.js
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const fs = require('fs');
|
||||||
|
|
||||||
|
router.get('/urls.json', (req, res) => {
|
||||||
|
fs.readFile('src/Assets/urls.json', 'utf8', (err, data) => {
|
||||||
|
if (err) {
|
||||||
|
console.error(err);
|
||||||
|
res.status(500).send('Internal Server Error');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const urls = JSON.parse(data);
|
||||||
|
res.json(urls);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
basePath: '/',
|
||||||
|
router: router
|
||||||
|
};
|
||||||
|
|
@ -1,11 +1,10 @@
|
||||||
require('dotenv').config();
|
require('dotenv').config();
|
||||||
|
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
const fs = require('fs');
|
|
||||||
|
|
||||||
const app = express();
|
const app = express();
|
||||||
const PORT = process.env.PORT || 3000;
|
const PORT = process.env.PORT || 3000;
|
||||||
const API_KEYS = process.env.API_KEYS.split(',');
|
const API_KEYS = process.env.API_KEYS.split(',');
|
||||||
|
const urlsRouter = require('./Routes/urls');
|
||||||
|
const adsRouter = require('./Routes/ads');
|
||||||
|
|
||||||
app.use(express.static('public'));
|
app.use(express.static('public'));
|
||||||
|
|
||||||
|
|
@ -19,19 +18,45 @@ const checkApiKey = (req, res, next) => {
|
||||||
|
|
||||||
app.use(checkApiKey);
|
app.use(checkApiKey);
|
||||||
|
|
||||||
app.get('/urls.json', (req, res) => {
|
const allRoutes = [
|
||||||
fs.readFile('src/Assets/urls.json', 'utf8', (err, data) => {
|
urlsRouter,
|
||||||
if (err) {
|
adsRouter
|
||||||
console.error(err);
|
];
|
||||||
res.status(500).send('Internal Server Error');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const urls = JSON.parse(data);
|
allRoutes.forEach(({ basePath, router }) => {
|
||||||
res.json(urls);
|
app.use(basePath, router);
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
app.get('/', (req, res) => {
|
||||||
|
const routes = allRoutes.map(({ basePath, router }) => ({
|
||||||
|
path: basePath,
|
||||||
|
routes: listRoutes(router)
|
||||||
|
}));
|
||||||
|
res.json(routes);
|
||||||
|
});
|
||||||
|
|
||||||
|
function listRoutes(router) {
|
||||||
|
const routes = [];
|
||||||
|
router.stack.forEach((middleware) => {
|
||||||
|
if (middleware.route) {
|
||||||
|
let path = middleware.route.path;
|
||||||
|
if (path instanceof RegExp) {
|
||||||
|
path = middleware.regexp.toString();
|
||||||
|
}
|
||||||
|
if (path.startsWith('^/')) {
|
||||||
|
path = path.slice(2);
|
||||||
|
}
|
||||||
|
routes.push({
|
||||||
|
file: path.split('/')[1], // Extract file name from the path
|
||||||
|
methods: Object.keys(middleware.route.methods),
|
||||||
|
});
|
||||||
|
} else if (middleware.name === 'router') {
|
||||||
|
routes.push(...listRoutes(middleware.handle));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return routes;
|
||||||
|
}
|
||||||
|
|
||||||
app.listen(PORT, () => {
|
app.listen(PORT, () => {
|
||||||
console.log(`Server is running on http://localhost:${PORT}`);
|
console.log(`Server is running on http://localhost:${PORT}`);
|
||||||
});
|
});
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue