Node-Craigslist语法以获取详细信息

时间:2018-04-14 16:35:37

标签: javascript node.js express

您好我正在使用包node-craigslist https://github.com/brozeph/node-craigslist,我希望有人可以通过详细信息方法帮助我解决一些语法问题。 在他的文档中,他给出了示例

client
  .list()
  .then((listings) => client.details(listings[0]))
  .then((details) => {
    console.log(details);
  })
  .catch((err) => {
    console.error(err);
  });

我目前正在使用代码来获取列表,但不是详细信息。下面是我检索列表的代码部分。

client
  .list(options)
  .then((listings) => {
      listings.forEach((listing) => {
            console.log(listing);
            searchResults.title[counter] = listing.title;
            searchResults.date[counter] = listing.date;
            searchResults.location[counter] = listing.location;
            searchResults.url[counter]   = listing.url;
            searchResults.price[counter]   = listing.price;
            counter++;
            if(counter === listings.length) {
                socket.emit('redirect'); //change to /results.ejs if done looping
            };
    });//end of listings foreach
  }); 

我一直试图将细节合并到我自己的代码中失败。有没有人知道如何做到这一点?感谢。

1 个答案:

答案 0 :(得分:0)

您需要将listing对象传入方法。在他的例子中,他只是在没有任何搜索选项的情况下获取最新的列表,然后从该列表中列出第一个列表。但您显然可以自定义搜索和选项。

client
  .list()
  .then((listings) => client.details(listings[0]))
  .then((details) => {
    console.log(details);
  })
  .catch((err) => {
    console.error(err);
  });

根据代码的其余部分的结构,您需要确定何时传递特定列表。在我使用此软件包构建的应用程序中,我创建了返回所有列表的初始搜索请求,然后当用户单击搜索词的列表时,我再次传递该特定列表OBJECT,然后返回细节。

更具体......

  1. 在客户端,用户搜索,然后将其发送到服务器,然后发出搜索请求。
  2. 请求完成后,我将结果发送回客户端,然后将信息显示给用户,并将每个列表对象存储在每个列表中的自定义数据属性中,以备日后使用。
  3. 用户点击特定列表后,我会从data-attribute中获取该对象并将其发送到服务器。
  4. 服务器侦听并使用该列表对象发出第二个DETAILS请求,然后将其发送回客户端浏览器。