expressjs node.js为google / etc bot和人stream量提供不同的数据

我想确定传入的请求是来自bot(例如google,bing)还是人类,并且为每个客户端提供不同的数据,例如用于客户端JavaScript的json数据来构build站点或预处理的html。

使用expressjs,有没有一个简单的方法来做到这一点? 谢谢。

我build议您根据请求的MIMEtypes(它出现在“Accept”标题中)进行响应。 你可以这样用Express来做到这一点:

app.get('/route', function (req, res) { if (req.is('json')) res.json(data); else if (req.is('html')) res.render('view', {}); else ... }); 

你可以检查req.header('User-Agent')是否为'Mozilla / 5.0(compatible; Googlebot / 2.1; + http://www.google.com/bot.html '),如果你知道它是Google和可以发送不同的数据。

http://www.google.com/support/webmasters/bin/answer.py?answer=1061943

如何获取标题http://expressjs.com/4x/api.html#req.get