У меня есть приложение express, с которым я взаимодействую с экземпляром кукловода. Для этого я делаю что-то подобное.
**server.js**
const puppeteer = require('puppeteer');
const express = require("express");
const bodyParser = require("body-parser");
const app = express();
const port = process.env.PORT;
// using bodyParser to parse JSON bodies into JS objects
app.use(bodyParser.json());
// creating a puppeteer instance
let client = await puppeteer.launch(config)
app.post("/open", (req, res) => {
let page = req.body.page;
if (page) {
client.newPage().then(() => res.json({"success" : true})
}
});
app.listen(port, () =>
console.log(`App is listening on port ${port}!`)
);
Проблема, с которой я сталкиваюсь при такой настройке, заключается в том, что каждый раз, когда я перезагружаю свой сервер, мой экземпляр кукловода также должен перезагружаться. Мои будущие требования (длительная задача в кукловоде) не позволяют мне перезапускать экземпляры кукловода каждый раз, когда я закрываю / перезагружаю свой сервер express.
Итак, есть ли способ, которым я мог бы инициализировать экземпляр кукловода и сохранить ссылку на него в некотором виде хранилища (диск et c.) В другом файле, скажем pup. js и запустить его и затем взаимодействовать с ним внутри моего сервера. js файлы, которые теперь должны содержать только код моего сервера c. Таким образом, в основном, я бы сделал node pup.js
, чтобы запустить и инициализировать экземпляр кукловода, а затем сделать node server.js
, чтобы запустить мой express сервер. По сути, сделайте их независимыми друг от друга.