使用.is()检查请求types的Express.js不起作用

我试图检查是什么types的内容,但它似乎没有工作。 这里是shell的输出:

$ 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 Accept头可以触发req.is('html')函数,甚至可以触发application/xhtml+xml Accept头来触发req.is('xml') ,但else语句实际上是运行的。 我正在使用Express 3.0.0 rc1和节点0.8.1。

原来我应该使用.accepts() ,而不是.accepts() .is()