{"library":"prerender-node","title":"prerender-node","description":"Express middleware for serving prerendered JavaScript-rendered pages to crawlers (Google, Facebook, Twitter, Bing) to improve SEO for Angular, React, Vue, and other JS frameworks. Current stable version: 3.8.3. Released as needed, maintained actively. Key differentiator: integrates with Prerender.io cloud service or self-hosted prerender server, supports whitelist/blacklist, beforeRender/afterRender hooks. Compared to alternatives like puppeteer-based solutions, it offloads rendering to an external service, reducing server load.","language":"javascript","status":"active","last_verified":"Sat Apr 25","install":{"commands":["npm install prerender-node"],"cli":null},"imports":["const prerender = require('prerender-node'); app.use(prerender);","app.use(require('prerender-node').set('prerenderToken', 'YOUR_TOKEN'));","app.use(require('prerender-node').whitelisted('/search'));","app.use(require('prerender-node').blacklisted('/admin'));"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"const express = require('express');\nconst prerender = require('prerender-node');\n\nconst app = express();\nconst PORT = process.env.PORT || 3000;\nconst PRERENDER_TOKEN = process.env.PRERENDER_TOKEN ?? '';\n\nif (PRERENDER_TOKEN) {\n  app.use(prerender.set('prerenderToken', PRERENDER_TOKEN));\n} else {\n  app.use(prerender);\n}\n\napp.get('/', (req, res) => {\n  res.send(`\n    <html>\n      <head><title>Test</title></head>\n      <body>\n        <div id=\"root\">Hello World</div>\n        <script>document.getElementById('root').innerHTML = 'Prerendered';</script>\n      </body>\n    </html>\n  `);\n});\n\napp.listen(PORT, () => console.log(`Server running on port ${PORT}`));","lang":"javascript","description":"Sets up Express middleware for prerendering: uses token from env or runs without, then serves a simple HTML page.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}