我想确定传入的请求是来自机器人(例如google,bing),还是来自人类,并为每个人提供不同的数据,例如,用于构建站点的客户端javascript的json数据或预处理的html。
使用expressjs,有没有简单的方法可以做到这一点?谢谢。
发布于 2011-09-22 20:59:08
我建议您根据请求的MIME类型(位于"Accept“头中)进行响应。您可以通过以下方式使用Express完成此操作:
app.get('/route', function (req, res) {
if (req.is('json')) res.json(data);
else if (req.is('html')) res.render('view', {});
else ...
});发布于 2011-09-22 15:04:49
你可以检查“Mozilla/5.0 (compatible;Googlebot/2.1;+http://www.google.com/bot.html”)的req.header('User-Agent')。如果是这样的话,你就知道这是谷歌,可以向它发送不同的数据。
http://www.google.com/support/webmasters/bin/answer.py?answer=1061943
如何获取headers http://expressjs.com/4x/api.html#req.get
https://stackoverflow.com/questions/7508758
复制相似问题