You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用prerender-node时UiPathRobot.js无法服务端执行的解决咨询

How to Get UiPathRobot.js to Execute Server-Side with Prerender-Node

Hey there, let's break down how to fix your issue step by step. The core problem here is ensuring your UiPathRobot.js runs server-side via Prerender so crawlers get fully rendered content instead of waiting for client-side JS to execute. Here's what you need to adjust:

1. Fix Prerender Service Configuration

By default, prerender-node points to the official Prerender cloud service, which requires a valid token (or you can run a local Prerender instance for debugging). Without this, the service won't properly render your page.

Option A: Use the Official Prerender Cloud Service

First, sign up for a token on the Prerender platform, then add it to your config:

app.use(prerender.set('prerenderToken', 'YOUR_PRERENDER_CLOUD_TOKEN'));

Option B: Run a Local Prerender Instance (Better for Debugging)

Install Prerender globally first:

npm install prerender -g

Then start the local service with prerender (it runs on port 3000 by default). Update your Express config to use this local service:

app.use(prerender.set('prerenderServiceUrl', 'http://localhost:3000/'));

2. Serve Static Files Before Prerender

Your current code returns index.html for every request, including static assets like UiPathRobot.js or styles.css. This means Prerender can't load the actual JS/CSS files needed to render the page. Add express.static before the Prerender middleware to handle static assets:

// Adjust the path to match your project's root directory
app.use(express.static('C:\\Users\\name\\Documents\\Git\\rpa_robotjs'));

3. Ensure Prerender Triggers for Crawlers

Prerender-node checks user agents to identify crawlers, but you can explicitly test it with the ?_escaped_fragment_= query parameter (a standard crawler signal). After setting up, visit http://localhost:6543/?_escaped_fragment_= to see if you get the rendered content.

If you need to expand the list of recognized crawlers, add this:

app.use(prerender.set('crawlerUserAgents', [
  'Googlebot',
  'Bingbot',
  'Slurp',
  'DuckDuckBot',
  // Add any other crawlers you need
]));

4. Make UiPathRobot.js Execute Automatically

Right now, your refreshRobotProcesses() function only runs when the button is clicked. Crawlers won't click buttons, so you need to trigger this logic automatically when the page loads. Add this to your helper.js (or directly in the HTML):

document.addEventListener('DOMContentLoaded', function() {
  // Run the robot process refresh on page load for Prerender
  refreshRobotProcesses();
});

This ensures the server-side renderer executes the function and generates the content in divRobots.

5. Final Working Config

Putting it all together, your Express code should look like this:

const express = require('express');
const prerender = require('prerender-node');
const app = express();

// 1. Serve static assets first
app.use(express.static('C:\\Users\\name\\Documents\\Git\\rpa_robotjs'));

// 2. Configure Prerender (pick one option above)
app.use(prerender.set('prerenderServiceUrl', 'http://localhost:3000/'));
// app.use(prerender.set('prerenderToken', 'YOUR_TOKEN'));

// 3. Handle all other requests with index.html
app.get('*', (req, res) => {
  res.sendFile('C:\\Users\\name\\Documents\\Git\\rpa_robotjs\\index.html');
});

app.listen(6543, () => {
  console.log('Server running on http://localhost:6543');
});

Debugging Tips

  • Check the local Prerender service logs (when running locally) for errors like missing assets or JS execution failures.
  • View the page source of the ?_escaped_fragment_= URL to confirm divRobots has rendered content instead of being empty.
  • Ensure UiPathRobot.js doesn't rely on browser-specific APIs that Prerender's Headless Chrome doesn't support (most standard APIs work, but double-check if your script uses niche features).

内容的提问来源于stack exchange,提问作者kwoxer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 13:47:47