Экспресс приложение, когда res.send путь, он не заменяет данные - PullRequest
0 голосов
/ 10 января 2019

Я использую res.send в цикле, чтобы постоянно помещать данные на сайт, извлеченный с другого сайта, но данные на исходном сайте могут измениться, поэтому я хочу, чтобы он также обновлялся на моем сайте, но я не могу перезаписать данные, которые уже отправлены в запросе. (К вашему сведению, веб-сайт, с которого я беру данные, - это Jira, использующий Jira-Search)

function getIssues(givenDir, givenQuery) {
var dir = givenDir
var query = givenQuery;
var search = require('jira-search');

console.log("Getting Issues: " + query); 
search({
  serverRoot: 'url', // the base URL for the JIRA server
  user: 'username', // the user name
  pass: 'password', // the password
  //jql: 'query"', // the JQL
  jql: query,
  //maxResults: 10, // the maximum number of results for each request to JIRA, multiple requests will be made till all the matching issues have been collected
  onTotal: function (total) {
    // optionally initialise a progress bar or something
    //console.log("Searching");
  },
  mapCallback: function (issue) {
    // This will be called for each issue matching the search.
    // Update a progress bar or something if you want here.
    // The return value from this function will be added
    // to the array returned by the promise.
    // If omitted the default behaviour is to add the whole issue
    console.log(issue.key + "   " + issue.fields.status.name);
    return issue;
  }
  }).then(function (issues) {
    // consume the collected issues array here
    //res.send(issues);
    console.log("Logging issues to: " + dir);
    app.get(dir, function(req, res){res.send(issues)});
    index++;
    main();
    return issues;
  }).done();

}

1 Ответ

0 голосов
/ 11 января 2019

Существует 2 способа обновления данных на вашем собственном сайте. Один из них - встроить автообновление, чтобы вы «вытягивали» данные через определенный интервал, если вы не против, чтобы данные устарели между интервалами.

Другим более реальным решением в реальном времени является «выталкивание» данных с использованием сокетов. Взгляните на sockets.io . Вы будете реализовывать что-то похожее на пример кода, который они дают, это программа чата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...