Результат HTTP-сервера Moment.js в настоящее время выводится неправильно - PullRequest
0 голосов
/ 24 апреля 2019

Первый раз, используя javascript и библиотеку Momentjs. У меня проблема с выводом, так как он не печатает то, что нужно. Мне нужно вывести даты в формате «день, дата, месяц, год» (например, вторник, 14 мая 2018 года). Мне нужно использовать цикл для перехода по пустому массиву dates, который затем выводит отформатированную версию каждой даты в отдельной строке, и мне нужно сделать это в функции createServer.

Я использую изолированную программную среду кода и очень смущен тем, почему это не работает.

Я посмотрел на moment.js и другие форумы, но ни один не ответил на мою проблему.

var http = require("http");
var moment = require("moment");
moment().format();

function getDates(start, end, dates) {
  var start = moment.isDate(new Date("1st Jan 2019"));
  var end = moment.isDate(new Date("31st December 2019"));
  var dates = [];
  var current = start.clone();

  if (current !== moment.isoWeekday(1)) {
    current = moment().add(1, "w");
  }
  while (current.isBefore(end)) {
    current.clone.push(dates);
    current = moment.add(2, "w");
  }

  return dates;
}

http
  .createServer(function(req, res) {
    res.writeHead(200, { "Content-Type": "text/plain" });
    res.write("day,date", "\n");
    var dates = function getDates() {};
    for (var i = 0; i < dates.length; i++) {
      moment.res.write.format("dddd, Do MMMM YYYY", "\n");
    }
    res.end();
  })
  .listen(8080);

Что происходит, так это то, что на экране вывода отображается только day, date. И мне нужны отформатированные даты, которые я пытался получить из пустой переменной массива 'date', определенной в функции.

1 Ответ

0 голосов
/ 24 апреля 2019
var dates = function getDates() {};

не вызывает функцию getDates().Это делает dates именем новой функции, которая ничего не делает, подобно написанию

function dates() {
}

Измените это на:

var dates = getDates();

Другая неправильная строка:

  moment.res.write.format("dddd, Do MMMM YYYY", "\n");

Это должно быть:

res.write(moment.format("dddd, Do MMMM YYYYY", dates[i]), "\n");

Вы не можете объединить res.write и moment.format в один вызов функции.И вам нужно отформатировать текущий элемент массива dates.

...