使用.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()
。