2012-07-30 73 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); 

我期望text/html接受頭觸發req.is('html')功能甚至application/xhtml+xml接受標題觸發req.is('xml'),但else聲明實際上運行。我正在使用Express 3.0.0 rc1和Node 0.8.1。

回答

6

原來我應該使用.accepts()而不是.is()