我怎么知道我的http请求的结果是否完整?

时间:2018-12-19 22:58:06

标签: javascript node.js http

因此,我正在使用github APIv3来获取我正在执行的项目的一些数据。我必须确保请求的结果是严格的,因为这是针对我正在撰写的有关代码味道的文章。 我必须知道开发人员正在使用哪些类,所以我的数据需要是完美的和可验证的。

我向github API发出了此HTTP请求以获取数据。问题是有时收集的数据是A,有时是B。有什么办法可以确保收集的数据是可以从API收集的完整数据? (控制台中的错误始终相同)。

for (let i = 0; i < devInfo.length; i++) {
  let dev = devInfo[i];
  let project = dev.project;
  let name = dev.dev;
  let repo = reposData.find(e => e.repo == project);
  let maxDate = repo.maxDate;
  let url = `repos/${repo.owner}/${project}/commits`;
  console.log("Dev: " + name + "      Project: " + project);
  client.get(url, {
    until: maxDate,
    author: name
  }, function(
    err,
    status,
    body,
    headers
  ) {
    if (err != null) {
      console.log(err);
    }
    if (Array.isArray(body)) {
      body.forEach(commitInfo => {
        let date = new Date(commitInfo.commit.author.date);
        if (commitInfo.author != null) {
          client.get(`${url}/${commitInfo.sha}`, {}, function(
            err,
            status,
            body,
            headers
          ) {
            if (err != null) {
              console.log(err);
            }
            if (body != null || body != undefined) {
              if (Array.isArray(body.files)) {
                body.files.forEach(file => {
                  let fnArr = file.filename.split("/");
                  let javaClass = fnArr.find(e => e.match(/.java/));
                  if (validPojects.some(e => e == project)) {
                    if (javaClass != null) {
                      let classArr = javaClass.split(".");
                      let className = classArr[0];
                      fs.appendFileSync(
                        "filesMoved3.csv",
                        project +
                        "," +
                        name +
                        "," +
                        className +
                        "," +
                        date +
                        "\n"
                      );
                    }
                  }
                });
              }
            }
          });
        }
      });
    }
  });
}

0 个答案:

没有答案