gpt4 book ai didi

node.js - ExpressJS App.use 路由序列

转载 作者:太空宇宙 更新时间:2023-11-03 23:43:24 24 4
gpt4 key购买 nike

我在 app.js 中有以下内容:

app.use(express.static(path.join(__dirname, 'public')));
app.use(function(req, res, next) {
console.log('app.use');
...
next();
});

app.use(app.router);

public 文件夹包含子文件夹 imagescssjs

app.use(app.router); 之后,我有用于从 Amazon S3 返回图像的路由定义。

app.get('/images/:type/:id', image);

问题是,当页面包含图像时,app.use 被调用两次。如何预防呢?我想忽略 /images/* 调用 app.use(function(req, res, next) {});

最佳答案

一般来说,Express 使用中间件连接架构。每个中间件都接受 next 函数,如果调用该函数,则将流程传递到下一个中​​间件。因此,理论上,如果您错过了它,您可以归档您想要的内容:

app.use(function(req, res, next) {
// check if the route matches amazon file
if(...amazon file...) {
// serve image
} else {
next();
}
});
app.use(express.static(path.join(__dirname, 'public')));

关于node.js - ExpressJS App.use 路由序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18691397/

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