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

标签 node.js express

我是 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/

相关文章:

javascript - Node.js 中的可变变量

javascript - 无法在 Express 应用程序中连接路线

javascript - 使用异步处理高原流 block

mysql - SequelizeConnectionRefusedError : connect ECONNREFUSED 127. 0.0.1:3306

javascript - 尽管未显式调用事件处理程序,但为什么会触发 eventemitter

ruby - 为什么 Capistrano 在部署期间中止?

reactjs - 在遵循 React、Express 和 Typescript 教程时尝试添加 & { session : Express. Session } 以键入 MyContext 时出现 "No exported member"错误

node.js - 服务器发送成功,即使没有找到任何东西

javascript - 将数据从 main 传递到渲染器 (electron-js)

javascript - 在nodejs中使用aysync对oracledb进行同步查询