在请求结束时,我想进入text/html end inject </body>标记的结果。 理想情况下,这将尽可能低 - 即HTTP模块或最差连接。

我正在尝试创建一个用于调试的包,并且在启用调试时,我希望注入脚本。 让它尽可能低只是意味着我正在处理的软件包尽可能兼容。

===============>>#1 票数:2 已采纳

一种方法可能是修补ServerResponse.end,如下所示:

var http = require('http');

var oldEnd = http.ServerResponse.prototype.end,
    RE_CONTYPE_HTML = /Content-Type: text\/html/i;
http.ServerResponse.prototype.end = function(data, encoding) {
  if (RE_CONTYPE_HTML.test(this._header)) {
    if (data)
      this.write(data, encoding);
    this.write('<script>window.onload = function(){ alert("Hello World!"); };</script>', 'ascii');
    oldEnd.call(this);
  } else
    oldEnd.call(this, data, encoding);
};

http.createServer(function(req, res) {
  res.writeHead(200, { 'Content-Type': 'text/html' });
  res.end('<h1>Greetings from node.js!</h1>');
}).listen(8000);

  ask by vdh_ant translate from so

未解决问题?本站智能推荐:

5回复

连接或Express中间件以修改response.body

我想拥有一个修改响应主体的中间件功能。 这是用于快递服务器。 就像是: 我不明白该听什么事件。 任何帮助或文档将不胜感激。
1回复

快速响应体缓冲

我正在尝试使用Node构建一个快速简单的图像上传服务,它接收所接收的图像并将它们保存到Mongo的GridFS中。 GridFS get需要一个Buffer对象NodeJS Mongo Driver GridFS put 问题很简单:如何将接收到的请求主体完全转换/转换为适当的缓冲区
2回复

ConnectJS / ExpressJS URL处理程序的通用预处理程序?

在我的ExpressJS应用中,我的几个URL处理程序具有以下逻辑: 查看用户是否有权访问资源 如果是这样,请继续 否则,重定向到主处理程序。 是否可以通过ConnectJS或ExpressJS为某些URL处理程序插入预处理程序? 我知道我可以对所有处理程
2回复

表达中间件以将内容注入

我想创建一些Express中间件,将内容注入服务器返回的每个HTML文档的<head>部分。 这可能还是明智的? 谢谢!
1回复

代理之前如何检索POST请求正文

使用Node上的连接库,我尝试在使用node-http-proxy代理之前检索请求正文。 从Node v4开始,我们必须使用诸如bodyParser之类的中间件(或仅根据请求提供数据 / 结束事件)来检索POST请求主体。 问题是,代理服务器似乎消耗了请求流和请求超时。 这是代
2回复

快递js身体解析器不工作?

我在使用express的节点服务器中有以下内容(截断到重要部分): 然后我有一个简单的形式,调用localhost:8080像这样: 但是express.bodyParser似乎没有做任何事情,并且req.body是未定义的。 这是console.log的输出: 注意:
1回复

v0.5.0之前的节点在连接时Socket.IO崩溃(与传输无关)

当我尝试连接到socket.io时,它崩溃并显示以下错误消息: 当我尝试启动节点聊天示例时,会发生这种情况。 (示例文件夹中的server.js文件)。 已安装的socket.io版本是使用npm install socket.io安装的当前版本。 有谁知道导致崩溃的原因是什么
1回复

Express.js注入中间件输出错误

我正在使用express.js服务器,并尝试将中间件注入应用程序实例。 我正在尝试将Hello()函数注入到当前app实例中。 但是,当我从控制台运行代码时,它会返回“ hello world”,但控制台中也会出现一些错误。 我在哪里做错了。
7回复

如何在Express中强制将请求正文解析为纯文本而不是json?

我正在像这样使用nodejs + Express(v3): 我检查了请求标头,但缺少内容类型。 即使“ Content-Type”是“ text / plain”,它似乎也将解析为JSON。 无论如何,有没有告诉中间件总是将正文解析为纯文本字符串而不是json? req早期版本曾经
1回复

OpenShift node.js应用程序将所有输出作为字符串写入HTML正文

我在OpenShift中创建一个node.js应用程序,但我遇到一个奇怪的问题,即我write()的所有内容都以字符串形式显示在响应的主体中。 例如,当请求登录页面时,结果如下所示: 如果我在Chrome中检查响应,则显示的是: 如您所见,我的所有输出都在html正文中作为字符