@jestkI

Параллелизм Puppeteer с Express Router Node JS. Как передавать page между роутами сохраняя параллелизм?

app.post('/api/auth/check', async (req, res) => {
  try {
  const browser = await puppeteer.launch();
  const page = await browser.newPage();
  await page.goto(
    'https://www.google.com'
  );
  res.json({message: 'Success'})
  } catch (e) {
  console.log(e);
  res.status(500).json({ message: 'Error' });
  }});


  app.post('/api/auth/register', async (req, res) => {
  console.log('register');
  // Сюда нужно передать текущую сессию пользователя (page и browser) и далее выполнять действия на той-же странице.
  await page.waitForTimeout(1000);
  await browser.close();
  }});


Можно ли как-то передать page и browser из одного роута в другой при этом сохраняя параллелизм puppeteer? Если задавать глобально переменную то page и browser будет перезаписывается и многозадачность не будет работать.
  • Вопрос задан
  • 197 просмотров
Решения вопроса 1
@olmax04
Всё оказалось проще. Сделал привязку к сессии создав hash.

var createHash = require('hash-generator');
let session = createHash(12);
И потом задал переменные в самих post запросах которые будут использоваться в роутах.

//задаем переменную
app.set(`login_${session}`, user_login);
//вызываем её в других роутах
app.get(`login_${session}`);
Переменную session передаю через react в каждый роут,и таким образом всё работает
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы