簡體   English   中英

如何包裝節點表示輸出,以便可以將其包含為javascript?

[英]How to wrap node express output so that it can be included as javascript?

嘗試修改node.js express以將標准輸出包裝在javascript中(利用document.write),以便可以將其包含在其他HTML文件中。 我想在快速級別上對輸出進行編碼,並在客戶端上對其進行解碼。

編輯:我想創建一個標准的節點應用程序,該應用程序生成HTML輸出,但在發送JavaScript之前將其包裝。 這樣一來,我可以繼續使用快速車把和其他附加組件,而不會影響輸出。

如果這已經是節點中的問題,請指向我有關如何實現的文檔? 否則,我正在尋找在express中更改代碼的位置以包裝每個輸出。

為了清楚; 要回答,請提供正確的快遞文件參考,並以現有代碼開始以生成可以實現我的目標的修改版本。

我正在查看的Express版本是4.15.4。 我已經查看了代碼,並找到了index.js和route.js文件( https://github.com/expressjs/express/tree/master/lib/router ),但對了解在哪里修改的了解不夠深碼。

我的最初目標是使我的節點應用程序返回包裝在類似於以下代碼中的編碼HTML:

var str = "<encoded content goes here>";
document.write(decodeURI(str));

從HTML調用我的節點的示例方法:

<script src='http://localhost:3000/'></script>

如果您有任何意見,請隨時評論。

謝謝!

我想我已經解決了。

在文件https://github.com/expressjs/express/blob/master/lib/response.js @第116行中,我添加了以下代碼:

  chunk = "str = \""+encodeURI(body)+"\";\ndocument.write(decodeURI(str));\n";

似乎奏效了。

所以:

res.send = function send(body) {
  var chunk = body;
  var encoding;
  var len;
  var req = this.req;
  var type;

  // settings
  var app = this.app;
<added my code here>
  // allow status / body

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM