express-ssrer
v2.0.8
Published
Express middleware for ssrer.
Downloads
2
Readme
express-ssrer
Express middleware for SSRer.
Overview
ssrer 用の express middleware
で、ユーザエージェントから crawler/bot
を検知し、ssrer へ転送し、結果を返却します。
SPAのSSRを使った、SEOに最適です。
ssrer support version
2.0.0以降をサポート
Features
- [x] Bot判定
- [x] GETのみ許可 (option)
- [x] HTMLファイルのみ転送 拡張子判定
- [x] レスポンス ステータス/ヘッダーをエミュレート puppeteer
- [x] ssrer オプション フルサポート
- [x] ssrer へのHTTPリクエストヘッダーを上書きサポート
- [x] ssexpress-botrer オプション フルサポート
Install
NPM install
npm install --save express-ssrer
QuickStart
Demo server with ssrer server
Brower -- http:8080 -- > demo server(demo.js) -- https:3000 -- > ssrer server
↑ ┃
┃ http:8080 ┃
┗━ Headless browser(puppeteer)━━━━━━ ┛
Docker インストール
ssrer を起動
demo サーバーを起動
npm run dressup
Access url : http://localhost:8080
Settings
{
"url": "https://localhost:3000",
"getOnly": true, // HTTP Method GET のみ転送
"emulateResponseStatus": true, // レスポンスステータスを、puppeteerのレスポンスにエミューレート
"emulateResponseHeader": false, // レスポンスヘッダーを、puppeteerのレスポンスにエミューレート
"logger": { // カスタムログ
"debug": (...messages) => { // デバッグ出力
console.debug(messages);
},
"error": (...messages) => { // エラー出力
console.error(messages);
},
},
"ssrer": { // ssrerへのアクセスパラメーター(querystring)
"width": 1280,
"height": 800,
"timeout": 5000,
"waitUntil": "networkidle2",
"cache": true,
"disableRequests": false
},
"override": { // ssrer へのHTTPSリクエストの上書き
"headers": {
// SSRER Server へのアクセスする ユーザエージェントを変更可能
"user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.167 Safari/537.36",
// SSRER Server が API認証の場合に設定
"X-AUTH-SSRER-DEVELOPER-API-KEY": "D2CCC657YL4X",
"X-AUTH-SSRER-DEVELOPER-API-SECRET": "DT3E2EW5NHESMTYECCUUUQL7GKB7FUVR",
"X-AUTH-SSRER-DEVELOPER-NAME": "demo",
}
},
excludeURLs: [ // SSRERのアクセスを除外するURLs
'/exclude'
],
includeExtensions: [ // SSRERのアクセスを含める拡張子
'.xhtml'
],
"expressBot": {} // express-bot 設定
}