我是 Node/表达新手,所以(希望)我缺少一个明显的答案。
有一个用于转换静态内容的中间件:https://www.npmjs.com/package/connect-static-transform/ 。转换函数如下所示:
transform: function (path, text, send) {
send(text.toUpperCase(), {'Content-Type': 'text/plain'});
}
因此,这对于在提供服务之前转换内容非常有用,但它不允许我查看查询参数。
这个答案展示了如何做到这一点Connect or Express middleware to modify the response.body :
function modify(req, res, next){
res.body = res.body + "modified";
next();
}
但我不知道如何让它与静态文件内容一起运行。当我运行它时 res.body
未定义。
是否有某种方法可以让中间件在 express.static
之后运行?
我的用例是,我想从磁盘提供文件,根据查询参数的值对一些文本进行少量替换。使用服务器端模板(例如 Flask),这会很容易。但我希望用户能够执行简单的 npm-install 并启动一个小型服务器来执行此操作。由于我是 Node 和 Express 的新手,所以我想省去读取 url、在磁盘上定位文件并读取它的麻烦。但很明显,我在尝试这种方法上浪费了更多时间。
最佳答案
答案似乎是“没有答案”。 (正如 Pomax 在评论中所建议的那样。)这真的很烦人。我没花太长时间就弄清楚如何自己提供和转换文件,但现在我必须弄清楚错误处理。有一百万人已经编写了这段代码。
关于node.js - Node/Express,如何修改静态文件但仍然可以访问 req.params?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30536140/