Javascript 如何限制用户访问ExpressJS/NodeJS中的静态html文件?

Javascript 如何限制用户访问ExpressJS/NodeJS中的静态html文件?,javascript,html,node.js,express,url-routing,Javascript,Html,Node.js,Express,Url Routing,是否有任何方法可以检测用户的请求URL并重新路由到特定的错误页面,例如, 我希望所有到任何HTML文件(*.HTML)的路由都能检测到它,并希望它被重新路由到错误页面。也可以对用户隐藏以查看它 注意:使用Express 4和最新的Node.JS版本 app.get('/', function(req,res){ if(req.is('text/html') == true){ res.redirect('/login'); } 这似乎不起作用,我想我缺少get请

是否有任何方法可以检测用户的请求URL并重新路由到特定的错误页面,例如, 我希望所有到任何HTML文件(*.HTML)的路由都能检测到它,并希望它被重新路由到错误页面。也可以对用户隐藏以查看它

注意:使用Express 4和最新的Node.JS版本

app.get('/', function(req,res){
    if(req.is('text/html') == true){
        res.redirect('/login');
    }
这似乎不起作用,我想我缺少get请求中的参数


请导游。提前谢谢

假设您的url中有文本
html
,在这种情况下,您希望将其路由到
登录
。请尝试以下操作:

app.use(function (req, res, next) {
    if ((req.path.indexOf('html') >= 0)) {
        res.redirect('/login');
    } 
});

它检查你的url路径,如果它检测到
html
,它将重定向到
登录

,只需将你的代码片段放在你的
应用程序之前。使用(express.static(…)应该可以。如果你不想让别人访问这些文件,那么你为什么要在静态路径下托管这些文件?@Quentin那么我应该把它们放在哪里?@Chinya_DotA-你可以删除它们。(当你不知道文件的用途时,很难给出一个有用的建议放在哪里,你只告诉我们它们不用于什么)。那么HTML文件实际上是模板文件?创建一个模板目录并将它们保存在那里。或者在路由中使用正则表达式:
app.use(/html$/,function…)