Node.js - 如何隐藏 html 页面?

Node.js - How to hide html pages?

我有 html 个页面,未登录的用户不应看到这些页面。我使用了下面的命令,我的 html 个页面变成了 public。

app.use(express.static('public'));

比如我不想让没有登录的用户看到这个页面。

http://localhost:3000/admin.html

注意:我说的不是 cookie。当你在工具栏输入html页面的地址时,如果没有登录,应该是进不了那个页面的

创建自定义 static 中间件,使用中间件您可以验证路径(本例中的文件名)。

我会尝试在示例代码中用注释来解释:

// path.join here makes it work cross platform with Windows / Linux / etc
var statics = express.static(path.join(__dirname, 'public'));


function secureStatic(pathsToSecure = []) {
  return function (req, res, next) {
    if (pathsToSecure.length === 0) {
      return statics(req, res, next); // Do not secure, forward to static route
    }

    if (pathsToSecure.indexOf(req.path) > -1) {
      return res.status(403).send('<h1>403 Forbidden</h1>'); // Stop request
    }

    return statics(req, res, next); // forward to static route
  };
}


// add public files. List all "private" paths (file)
app.use(secureStatic(['admin.html'])); // instead of app.use(express.static('public'));

但是,有了这个中间件,没有人可以通过您的快递服务器请求 admin.html 文件。