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

时间:2011-09-22 02:00:54

标签: javascript node.js search-engine express

我想确定传入的请求是来自机器人(例如google,bing)还是人类,并为每个提供不同的数据,例如,客户端javascript的json数据构建网站或预处理的html。

使用expressjs,有一种简单的方法吗?感谢。

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:3)

我建议您根据请求的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 ...
});