Node.js Node/Express,如何修改静态文件,但仍然可以访问req.params?

Node.js Node/Express,如何修改静态文件,但仍然可以访问req.params?,node.js,express,Node.js,Express,我是node/express的新手,所以(希望)有一个明显的答案我没有找到 有一个用于转换静态内容的中间件:。转换函数如下所示: transform: function (path, text, send) { send(text.toUpperCase(), {'Content-Type': 'text/plain'}); } 所以,这对于在提供服务之前转换内容来说是非常好的,但是我不想看查询参数 这个答案说明了如何做到这一点: 但我不知道如何让它与静态文件内容一起运行。当我运行它时,

我是node/express的新手,所以(希望)有一个明显的答案我没有找到

有一个用于转换静态内容的中间件:。转换函数如下所示:

transform: function (path, text, send) {
   send(text.toUpperCase(), {'Content-Type': 'text/plain'});
}
所以,这对于在提供服务之前转换内容来说是非常好的,但是我不想看查询参数

这个答案说明了如何做到这一点:

但我不知道如何让它与静态文件内容一起运行。当我运行它时,
res.body
未定义

有没有办法让中间件在
express.static
之后运行


我的用例是,我希望根据查询参数的值对一些文本进行少量替换,从而为磁盘上的文件提供服务。使用服务器端模板(如Flask)很容易做到这一点。但我希望用户能够进行简单的npm安装,并启动一个小型服务器来完成这项工作。由于我是node和express的新手,我想省去读取url、在磁盘上定位文件并读取它的麻烦。但很明显,我在尝试这种方法上浪费了更多的时间。

答案似乎是“没有答案”。(正如Pomax在评论中所建议的那样)。这真的很烦人。我没花太长时间就弄清楚了如何自己服务和转换文件,但现在我必须弄清楚错误处理。已经有一百万人编写了这段代码。

要么你需要
静态
,这意味着你不打算做任何修改,要么你需要专门服务于req/res对象,但使用静态转换确实是有悖常理的。如果您需要基于mime类型发送头,则通过setHeaders选项发送。
function modify(req, res, next){
   res.body = res.body + "modified";
   next();
}