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

问题描述 投票:0回答:1

第一次使用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'生成。

javascript node.js server momentjs
1个回答
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数组的当前元素。

© www.soinside.com 2019 - 2024. All rights reserved.