我正在尝试检查内容的类型,但似乎没有效果。这是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和Node 0.8.1。
答案 0 :(得分:6)
原来我应该使用.accepts()
,而不是.is()
。