javascript NodeJs ExpressJS中间件,允许特定于bot / crawler的路由。基于OS项目的Prerender.IO中间件用于节点。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript NodeJs ExpressJS中间件,允许特定于bot / crawler的路由。基于OS项目的Prerender.IO中间件用于节点。相关的知识,希望对你有一定的参考价值。
require("requirejs").define("middleware/onlyCrawlers", ["url"], function (url) {
var crawlerUserAgents = [
// 'googlebot',
// 'yahoo',
// 'bingbot',
'baiduspider',
'facebookexternalhit',
'twitterbot',
'rogerbot',
'linkedinbot',
'embedly',
'quora link preview',
'showyoubot',
'outbrain',
'pinterest'
];
return function (req, res, next) {
var userAgent = req.headers['user-agent']
, bufferAgent = req.headers['x-bufferbot']
, isCrawler = false;
if (!!userAgent && req.method == 'GET') {
//if it contains _escaped_fragment_, show prerendered page
if (url.parse(req.url, true).query.hasOwnProperty('_escaped_fragment_')) {
isCrawler = true;
}
//if it is a bot...show prerendered page
if (crawlerUserAgents.some(function (crawlerUserAgent) {
return userAgent.toLowerCase().indexOf(crawlerUserAgent.toLowerCase()) !== -1;
})) {
isCrawler = true;
}
//if it is BufferBot...show prerendered page
if (bufferAgent) {
isCrawler = true;
}
if (isCrawler)
{
next();
}
else{
next("route");
}
}
else {
next("route");
}
};
});
以上是关于javascript NodeJs ExpressJS中间件,允许特定于bot / crawler的路由。基于OS项目的Prerender.IO中间件用于节点。的主要内容,如果未能解决你的问题,请参考以下文章
javascript #upload #nodejs #multer #express
javascript NodeJs + Express中的CORS问题
javascript #nodejs #express #bodyparser访问表单正文
使用 NodeJs Express 在 JavaScript 上推送通知
NodeJS:Express 框架实战解析视频教程
javascript 将图像上传到MongoDB - (NodeJS Express Multer && GridFsStorage)