这里给出一个示例代码,演示如何将不同文件夹中的路由资源分别放置在不同路径下。
// 引入所需的模块
const express = require('express');
const fs = require('fs');
const path = require('path');
// 创建一个 Express 应用程序
const app = express();
// 定义路由资源文件夹的路径
const routesFolder = path.join(__dirname, 'routes');
// 读取路由资源文件夹中的所有文件
const files = fs.readdirSync(routesFolder);
// 遍历所有文件
files.forEach(file => {
// 获取文件的完整路径
const filePath = path.join(routesFolder, file);
// 判断文件是不是目录
if (fs.statSync(filePath).isDirectory()) {
// 如果是目录,则继续遍历该目录下的所有文件
const subFiles = fs.readdirSync(filePath);
// 遍历目录下的所有文件
subFiles.forEach(subFile => {
// 获取文件的完整路径
const subFilePath = path.join(filePath, subFile);
// 加载路由资源文件
const router = require(subFilePath);
// 获取路由资源文件的路径
const routePath = path.join('/', file, subFile.split('.')[0]);
// 将路由资源文件挂载到相应的路径上
app.use(routePath, router);
});
} else {
// 如果是文件,则直接加载路由资源文件
const router = require(filePath);
// 获取路由资源文件的路径
const routePath = path.join('/', file.split('.')[0]);
// 将路由资源文件挂载到相应的路径上
app.use(routePath, router);
}
});
// 启动服务器
app.listen(3000, () => {
console.log('服务器已启动,监听端口 3000');
});
上述代码假设路由资源文件夹的结构如下:
routes
├── folder1
│ ├── route1.js
│ ├── route2.js
├── folder2
│ ├── route3.js
│ └── route4.js
├── route5.js
└── route6.js
该代码会自动遍历路由资源文件夹中的所有文件和目录,并将它们分别挂载到相应的路径上。例如,route1.js
将被挂载到 /folder1/route1
上,route6.js
将被挂载到 /route6
上。