【发布时间】:2019-07-12 11:20:58
【问题描述】:
我有一个 expressJS RESTapi 项目。
我的文件夹结构是这样的。
/
/src
/routes
/controller
/models
/app.js
在我的路线文件夹中
/routes
/banners.routes.js
/reviews.routes.js
/users.routes.js
banners.routes.js 文件如下所示
const express = require('express');
const router = express.Router();
const passport = require('passport');
// eslint-disable-next-line no-unused-vars
const passportConf = require('../../passport');
const controller = require('../controllers/banner.controller');
router.post('/', passport.authenticate('jwt', { session: false }), controller.read);
module.exports = router;
在我的 app.js 文件中
const banners = require('./src/routes/banners.routes');
const users = require('./src/routes/users.routes');
const reviews = require('./src/routes/reviews.routes');
app.use('/banners', banners);
app.use('/users', users);
app.use('/reviews', reviews);
现在只有我三个。如果我有 100 条不同的路线,我需要这样做 100 次,这是非常低效的。应该有一种方法可以自动执行此操作。
我想到了 stackoverflow 的问题,我可以找到 RESTapis 的解决方案。我创建了一个名为 index.js 的文件并将这个 sn-p 添加到那个
const fs = require('fs');
const path = require('path');
const basename = path.basename(__filename);
fs
.readdirSync(__dirname)
.filter(file => (file.indexOf('.') !== 0) && (file !== basename) && (file.slice(-3) === '.js'))
.forEach((file) => {
console.log(file)
});
这样记录所有文件名。
banners.routes.js
reviews.routes.js
users.routes.js
有没有办法自动化这个路由的事情?
希望你能清楚我的问题。
【问题讨论】:
-
放置您的代码以在您的
app.js中查找文件,然后使用此信息构建app.use.. -
这是一个相关问题,其答案与以下类似:stackoverflow.com/questions/25623041/…
标签: javascript node.js express