expressjs node.js предоставляет разные данные для бота google / etc и трафика людей - PullRequest
5 голосов
/ 22 сентября 2011

Я хочу определить, поступают ли входящие запросы от бота (например, Google, Bing) или человека, и предоставлять разные данные каждому, например, данные JSON для клиентского JavaScript для создания сайта или предварительно обработанный HTML.

Используя expressjs, есть ли простой способ сделать это? Спасибо.

Ответы [ 2 ]

4 голосов
/ 22 сентября 2011

Вы можете проверить req.header ('User-Agent') для 'Mozilla / 5.0 (совместимо; 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

3 голосов
/ 22 сентября 2011

Я рекомендую вам ответить в соответствии с запрошенным типом MIME (который присутствует в заголовке «Принять»).Вы можете сделать это с помощью Express следующим образом:

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