gpt4 book ai didi

node.js - 在 express.js 中拦截对静态文件的请求

转载 作者:行者123 更新时间:2023-12-04 12:50:43 49 4
gpt4 key购买 nike

我有一个 Node 服务器,它在 PUBLIC 文件夹中提供静态文件,如下所示:

var app = express();
app.listen(port);
app.use(compression());
app.use(express.static(__dirname + '/PUBLIC'));

有一个 json 文件,假设位于/PUBLIC 文件夹中的 important.json。这是作为静态文件提供的

现在,我想拦截对这个/PUBLIC/important.json 的请求,这样我就可以通过编程方式返回一个随机的 json 结构。

以下均无效:

app.get('/PUBLIC/important.json', function(req, res) {
console.log("caught1!")
});

app.get(__dirname + '/PUBLIC/important.json', function(req, res) {
console.log("caught2!")
});

app.get('important.json', function(req, res) {
console.log("caught3!")
});

我如何拦截对该部分静态文件的请求?

最佳答案

由于 express.static 中间件不会使用 next() 调用下一个中间件,因此定义顺序很重要。在使用 express.static 之前,您必须定义自己的中间件。

app.get('/PUBLIC/important.json', (req, res, next) => {
console.log('caught');
next();
});
app.use(express.static(__dirname + '/PUBLIC'));

关于node.js - 在 express.js 中拦截对静态文件的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39118884/

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