Я очень новичок в кодировании, и это мой первый пост здесь. Мой учебный проект - это веб-сайт, который использует внешнюю CRM для хранения данных клиентов из веб-форм.
У меня нормально работает часть хранилища, но я не могу понять, как извлечь данные и передать их на отрендеренную страницу.
Мне нужен маршрут для выполнения 3 операций, каждая операция работает самостоятельно, я просто не могу понять, как их вложить, чтобы они выполнялись по порядку.
- Получить детали сделки от CRM
var options = { method: 'GET',
url: 'https://crm.com/dev/api/opportunity/' + req.params.id,
headers:
{ 'cache-control': 'no-cache',
'content-type': 'application/json',
accept: 'application/json',
authorization: 'Basic xxx' },
json: true };
request(options, function (error, response, body) {
if (error) throw new Error(error);
return body.contact_ids;
});
это вернет массив номеров клиентов, связанных со сделкой.
Выполните итерации по номерам клиентов, чтобы найти данные каждого клиента и поместить в массив. Я определил пустой массив с именем data за пределами области действия функции для получения результатов.
resultFromAboveRequest.forEach(function(id) {
var options = { method: 'GET',
url: 'https://crm.com/dev/api/contacts/' + Number(id),
headers:
{ 'cache-control': 'no-cache',
'content-type': 'application/json',
accept: 'application/json',
authorization: 'Basicxxx' },
json: true };
request(options, function (error, response, body) {
if (error) throw new Error(error);
data.push(body);
});
});
рендеринг результирующего массива данных на странице
res.render("./applicants/resume", {data: data});
Я почти уверен, что это работа для обещаний, однако я просто не могу разобраться с синтаксисом. Буду признателен за любую помощь, и я прошу прощения, если формат этого вопроса является любительским или каким-то образом неуместным.