Moment.js HTTP Server结果当前无法正确输出

时间:2019-04-24 15:45:43

标签: javascript node.js server momentjs

首次使用javascript和Momentjs库。我的输出出现问题,因为它没有打印所需的内容。我需要以“天,日期月年”的格式输出日期(例如,2018年5月14日,星期二)。我需要使用循环来遍历空数组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。而且我需要格式化的日期,我试图从该函数中定义的空数组变量“ dates”中产生日期。

1 个答案:

答案 0 :(得分:0)

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.writemoment.format组合成一个函数调用。然后,您需要格式化dates数组的当前元素。