У меня есть сервер expressjs, настроенный с фоновым скриптом, работающим кукловодом.Сценарий кукловода выполняется, а затем возвращает объект JSON с 4 свойствами.Это должно затем быть сохранено в переменных результатов (глобальная область) в server.js
. Проблема в том, что мой скрипт кукловода (вызываемый с помощью оператора module / require) не ожидает, несмотря на то, что я явноговорю это сделать.Когда я отлаживаю, программа не ждет завершения моего модуля кукловода, а просто выполняет эту функцию (app.listen).Возврат JSON должен быть доступен через мой API, но вместо этого результаты не определены.
Скриптовый сценарий завершается, когда все переменные внутри JSON являются правильными.Это заставляет меня верить, что проблема заключается в том, что сценарий экспресса отказывается ждать завершения куклы и продвигается вперед.Моя отладка подтверждает это
КОД
В express.js
app.get('/api', (req, res) => {
try {
res.json(results);
console.log('JSON SENT'.black)
} catch(e) {
console.error(e);
res.send("SCRIPT NOT FINISHED OR FAILED");
}
});
app.listen(port, async() => {
results = await puppet.puppet('verbose');
console.log(results);
})
В puppet.js
if(testPagesLive()) {
let quoteMadeAndRetrieved;
[optileadCredits, quoteMadeAndRetrieved] = await Promise.all([optiCheck(), runQuote()]);
[quoteMade, quoteRetrieved] = quoteMadeAndRetrieved;
}
return {
sitesUp: sitesUp,
optileadCredits: optileadCredits,
quoteMade: quoteMade,
quoteRetrieved: quoteRetrieved
}