路由整个文件夹及其内容

沃尔塔里

我想通过将用户重定向回索引来保护文件夹及其内容。

我已经尝试过了,但是它只能部分起作用。

var express = require('express');
var path = require('path');
var http = require('http');
var app = express();


app.set('port', 8080);
app.set('view engine', 'ejs');
app.use(express.static(path.join(__dirname, 'views')));

app.get('/', function(req, res) {
   res.render('index.ejs'); 
});

app.get('/protected/*', function(req, res, next) {
    res.redirect('/');
    next(); 
});

//activating server
http.createServer(app).listen(app.get('port'), function(){
  console.log('Express server listening on port ' + app.get('port'));
});

例如,这将路由“ localhost:8080 / protected”和“ localhost:8080 / protected / asdf”,但不会路由“ localhost:8080 / protected / otherPage.html”。

在这种情况下,asdf不是实际文件,而otherPage.html是。因此,如果文件存在,则不会重定向,但如果文件不存在,则它将重定向。为什么是这样?

格雷厄姆·史罗尔

您处理静态文件的行app.use(express.static(path.join(__dirname, 'views')));之前出现,app.get('/protected')因此首先要对其进行匹配。

如果将静态处理程序移至代码的更高版本,则可以按需运行。

但是,我建议将静态项目拆分到一个单独的文件夹中,以防止意外泄露您可能包含在views文件夹中的ejs文件中的任何服务器端代码。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Powershell如何复制整个文件夹结构,但排除一个文件夹及其内容

获取所需文件夹及其内容的路径

PyInstaller 未捆绑特定文件夹及其内容

如何忽略git中的文件夹及其内容?

Java-删除文件夹及其内容

使用forfiles删除文件夹及其内容

列出文件夹及其内容

如何删除目录中没有特定文件夹及其内容的所有内容

git排除除特定文件夹及其内容以外的所有内容

批量移动/剪切文件夹及其内容到另一个文件夹

删除所有符合条件的文件夹及其内容

如何在Powershell中移动文件夹及其内容

删除文件夹及其内容AWS S3 Java

将文件夹及其内容复制到Ubuntu中的USB记忆棒

使所有名为“abc”的子文件夹及其内容可写 - Windows

git忽略某些子目录/文件夹及其内容

如何记录对特定文件夹的访问及其内容的更改?

git从gitignore规则中排除特定文件夹及其内容

如何将一个目录/文件夹及其内容复制100次?

如何授予特定用户仅对特定文件夹及其内容的访问权限?

无法在Windows 10上访问文件夹及其内容“访问被拒绝”

从应用程序网格隐藏文件夹及其内容

如何使用平台无关的实现在Python中复制文件夹及其内容(文件/子目录)

grunt-contrib-clean删除除一个文件夹及其内容以外的所有文件夹/文件

如何将目录(文件夹及其内容)复制到另一个目录?

如何将文件夹及其内容添加到 Playframework 和 Heroku 的标准路径?

有没有一种简单的方法来复制一个文件夹及其内容但没有子文件夹?

如何合并多个文件夹并保持其内容排序?

Linux命令行-列出所有包含.js文件的目录,并将目录及其内容复制到新文件夹中