【发布时间】:2018-06-28 02:40:04
【问题描述】:
我对编码很陌生,这是我在这里的第一篇文章。我的学习项目是一个使用外部 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});
我很确定这是一项承诺的工作,但是我似乎无法理解语法。任何帮助都将不胜感激,如果这个问题的格式是业余的或在某种程度上不合适,我深表歉意。
【问题讨论】:
-
请不要在异步回调中写入
if (error) throw new Error(error);。它没有任何用处,也无法被您的任何代码捕获。您需要弄清楚如何实际处理您的错误。 -
好的,感谢您的反馈。我想我需要弄清楚很多事情,但我必须从某个地方开始:-)。我对此很陌生,我只是从邮递员那里复制并粘贴了代码。
标签: javascript api express