Node.js: как очистить json-страницу на предмет определенных данных

Я хотел бы очистить эту страницу: события календаря

для конкретных данных, таких как formattedDate и description. Как мне это сделать в модуле в Node.JS. Мне сложно понять процесс в Node.JS.

Любая помощь будет иметь большое значение, заранее спасибо.

1
0
870
2

Ответы 2

это довольно просто, вы можете импортировать модуль запроса и использовать его. Например, см. Код ниже.

const request = require("request");

request("MY_URL", (error, response, body) => {
  console.log('body:', body);
});

Также вы можете попробовать это здесь, на Repl.it

Прежде всего, вам нужно проанализировать ваш JSON, это позволяет вам получить доступ к полям из полученного json.

const data = JSON.parse(body);

Теперь, если вы хотите получить доступ к некоторой информации о событии, вам нужно зациклить события и получить доступ к тому, что вам нужно, например:

const events = data.bwEventList.events;
events.map((data, index) => console.log(data.calendar))

Окончательный код также на Repl.it

Спасибо за ответ. Не могли бы вы показать мне пример возможного цикла. У меня возникли трудности с созданием рабочего.

FreshOceans 14.08.2018 16:44

.map делает это, посмотрите здесь developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…

Grigore Budac 15.08.2018 15:09

из документов nodeJS здесь

    const http = require('http');

    http.get('http://umd.bwcs-hosting.com/feeder/main/eventsFeed.do?f=y&sort=dtstart.utc:asc&fexpr=(categories.href!=%22/public/.bedework/categories/sys/Ongoing%22%20and%20categories.href!=%22/public/.bedework/categories/Campus%20Bulletin%20Board%22)%20and%20(entity_type=%22event%22%7Centity_type=%22todo%22)&skinName=list-json&count=30', (res) => {
      const { statusCode } = res;
      const contentType = res.headers['content-type'];

      let error;
      if (statusCode !== 200) {
        error = new Error('Request Failed.\n' +
                          `Status Code: ${statusCode}`);
      } 
      if (error) {
        console.error(error.message);
        // consume response data to free up memory
        res.resume();
        return;
      }

      res.setEncoding('utf8');
      let rawData = '';
      res.on('data', (chunk) => { rawData += chunk; });
      res.on('end', () => {
        try {
          const parsedData = JSON.parse(rawData);
          console.log(parsedData["bwEventList"]["resultSize"]);
        } catch (e) {
          console.error(e.message);
        }
      });
    }).on('error', (e) => {
      console.error(`Got error: ${e.message}`);
    });

см. console.log(parsedData["bwEventList"]["resultSize"]); нарезать parsedData как массив, пока вы не получите то, что хотите

Другие вопросы по теме