express 动态加载route与使用自定义回调和通用回调
server.js
import express from 'express';
import http from 'http';
import router from './router';
const app = express();
const service = http.createServer(app);
app.use('/', router);
service.listen(3000);router.js
import express from 'express';
import fs from 'fs';
import path from 'path';
import requestHandler from '../requestHandler';
let api = express.Router();
// 使用path,绝对路径
fs.readdirSync(path.join(__dirname, '/routeMap'))
.filter(function (filename) {
return filename !== 'index.js' && filename.slice(-3) === '.js';
})
.forEach(function (filename) {
const servicename = filename.split('.js')[0];
let filepath = path.join(__dirname, '/routeMap/', filename);
let service = require(filepath);
Object.keys(service).map((key, index) => {
service[key].map((path) => {
// 自定义回调
if (typeof path === 'object') {
api[key](path.url, path.handler);
} else {
// 使用通用封装回调
api[key](path, requestHandler);
}
});
});
});
export default api;
routerMap/servicename.js
requestHandler.js
最后更新于
这有帮助吗?