gpt4 book ai didi

javascript - Node 中带有 Express 框架的动态路由

转载 作者:行者123 更新时间:2023-12-03 11:41:02 26 4
gpt4 key购买 nike

我正在为我的 Node js 服务器使用 Express Framework 4.0。我想知道是否有任何方法可以在运行时动态删除路由

var express = require('express');
var router = express.Router(/*Options */);

router.get('/', function (req, res)
{
res.render('index', {title: "Home"});
});
router.get('/features', function (req, res)
{
res.render('features', {title: "Features"});
});
//Hook into the routing system
module.exports = function(app,rootPath)
{
app.use(rootPath, router);
};

这是一个简单的示例,但我如何从路由表中删除/features 路径?此外,如果我希望稍后更新功能路由路径,是否可以用另一个路由路径覆盖此路由路径?

最佳答案

据我所知,您无法动态删除路由(至少不能以一种好的方式),但您可以使用过滤中间件在设置特定条件时禁止访问路由。

例如:

var allowRoute = true;
var filterMiddleware = function(req, res, next) {
if (allowRoute !== true) {
return res.status(404).end();
}
next();
};

app.get('/features', filterMiddleware, function(req, res) {
res.render('features', { title: 'Features' });
});

您可以切换 allowRoute 来启用或禁用对路由的访问(显然,根据具体的用例,您还可以使用 req 中的属性来启用/禁用对路由的访问路线)。

类似的设置可用于用另一个设置覆盖路由处理程序,尽管我开始想知道您想要完成什么以及覆盖路由处理程序是否是解决方案。

关于javascript - Node 中带有 Express 框架的动态路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26273550/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com