2012-07-30 2 views
4

콘텐츠 유형이 무엇인지 확인하려고하는데 작동하지 않는 것 같습니다. 다음은 쉘의 출력 :.is()가있는 Express.js 요청 유형이 작동하지 않습니다.

$ node app.js 
# Request http://localhost:3000 via browser 
CLIENT DOES NOT WANT XML, JSON, OR HTML 
text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 

는 그리고 여기 app.js 스크립트의 내용입니다 :

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

app.get('/', function(req, res) { 
    if (req.is('xml')) { 
     console.log("CLIENT WANTS XML"); 
    } else if (req.is('json') || req.is('html')) { 
     console.log("CLIENT WANTS JSON OR HTML"); 
    } else { 
     console.log("CLIENT DOES NOT WANT XML, JSON, OR HTML"); 
     console.log(req.header('Accept')); 
    } 
}); 

app.listen(3000); 

나는 심지어 req.is('html') 기능 또는 application/xhtml+xml을 트리거 할 text/html 헤더를 수락 기대 헤더를 받아 req.is('xml')을 트리거하지만 else 문이 실제로 실행됩니다. 익스프레스 3.0.0 rc1과 노드 0.8.1을 사용하고 있습니다.

답변

6

밝혀졌습니다. .is() 대신 .accepts()을 사용해야합니다.

관련 문제