Почему express-js не устанавливает заголовок Content-Type?

У меня есть следующее:

var express = require('express'),
    app = express.createServer();

app.get("/offline.manifest", function(req, res){
  res.contentType("text/cache-manifest");
  res.end("CACHE MANIFEST");
});

app.listen(8561);

Вкладка "Сеть" в Chrome говорит, что она text/plain. Почему он не устанавливает заголовок?

Выполненный выше код, мои проблемы были вызваны ссылкой на старую версию express-js

Ответ 1

res.type('json') работает тоже сейчас, и, как говорили другие, вы можете просто использовать  res.json({your: 'object'})

Ответ 2

Попробуйте этот код:

var express = require('express'),
    app = express.createServer();

app.get("/offline.manifest", function(req, res){
  res.header("Content-Type", "text/cache-manifest");
  res.end("CACHE MANIFEST");
});

app.listen(8561);

(Я предполагаю, что вы используете последнюю версию express, 2.0.0)

UPDATE: Я просто быстро проверил использование Firefox 3.6.x и Live HTTP Headers. Это вывод аддонов:

 HTTP/1.1 200 OK
 X-Powered-By: Express
 Content-Type: text/cache-manifest
 Connection: keep-alive
 Transfer-Encoding: chunked

Перед попыткой убедитесь, что вы очистили кеш.

Ответ 3

вместо res.send()

используйте res.json(), который автоматически устанавливает тип содержимого application/json