Запретить Apify выключить мой express сервер - PullRequest
0 голосов
/ 12 января 2020

У меня есть сервер express с конечной точкой POST, который запускает сканер. Когда сканер заканчивает работу, он выключает весь сервер. Я делаю что-то неправильно? Как я могу предотвратить это?

Проект выглядит примерно так:

// server.js
const express = require('express')
const bodyParser = require('body-parser')
const startSearch = require('./crawler.js')

const app = express()

app.use(bodyParser.json())

app.post('/crawl', async (req, res) => {
  const { foo, bar } = req.body

  startSearch({ foo, bar })
  res.end()
})

app.listen(PORT, () => console.log(`listening on port ${PORT}`))

// crawler.js
const Apify = require('apify')

const startSearch = ({ foo, bar }) => {
  Apify.main(async () => {
    const sources = [{
      url: 'https://path_to_website.com',
      userData: { foo, bar }
    }]
    const requestList = await Apify.openRequestList(null, sources)

    const crawler = new Apify.PuppeteerCrawler({
      requestList,
      handlePageFunction: async ({ request, page }) => {
          // do things using puppeteer
        }
      }
    })

    await crawler.run()
  })
}

1 Ответ

0 голосов
/ 13 января 2020

Просто избегайте использования Apify.main(). Подробнее см. Как использовать Apify в облачных функциях Google

(я думал, что отправляю ответ, но, похоже, это был просто комментарий)

...