![](/img/trans.png)
[英]Unable to Print a JSON Object in Node js with “content-type”: “text/plain; charset=UTF-8”
[英]Node Connect Static set Content-type text/plain not working
我正在嘗試將connect.static提供的文件的內容類型設置為text/plain
。 我認為這會起作用,但是連接似乎仍然在檢測mime
模塊擴展的內容類型。
var connect = require("connect")
connect()
.use(connect.static(__dirname + "/public"))
.use(function(req, res, next) {
res.setHeader("Content-Type", "text/plain");
})
.listen(process.env.PORT);
這有什么簡單的方法嗎? 也許在連接mime的實例之前搞砸了才能到達它? 或者我是否必須重寫連接靜態中間件?
如果您可以控制公共目錄中的文件名,最簡單的方法是確保它們以“.txt”結尾,以便mime映射為send函數提供正確的Content-Type。
如果失敗,您可以更改默認的mime類型:
var connect = require("connect")
var mime = connect.static.mime;
mime.default_type = mime.lookup('text');
connect()
.use(connect.static(__dirname + "/public"))
.listen(process.env.PORT);
或者,如果您確實希望每個文件都作為text / plain提供,只需在調用靜態中間件之前設置Content-Type標頭。 如果標題尚未出現在響應中,它只會添加標題:
var connect = require("connect")
connect()
.use(function(req, res, next) {
res.setHeader("Content-Type", "text/plain");
next();
})
.use(connect.static(__dirname + "/public"))
.listen(process.env.PORT);
只有靜態中間件無法處理請求,才會執行下一個中間件。
Incase靜態中間件找到該文件,它將它提供給客戶端。下一個中間件不會被執行。
這就是您的中間件無效的原因。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.