【发布时间】:2018-01-01 13:44:41
【问题描述】:
有快递
const express = require('express');
const moment = require('moment');
const app = express();
const generateSearchRange = (year) => (month) => {
return {
start: 0,
stop: moment([year]).endOf('year')
}
};
app.get('/foo/:year', (req, res) => {
const year = req.params.year; // 2017
res.send(generateSearchRange(year)(12)); // { "start": 0, "stop": "2016-12-31T22:59:59.999Z" }
});
app.listen(3000);
不含快递
const moment = require('moment');
const generateSearchRange = (year) => (month) => {
return {
start: 0,
stop: moment([year]).endOf('year')
}
};
console.log(generateSearchRange(2017)(12)); // { start: 0, stop: moment("2017-12-31T23:59:59.999") }
我不明白同一个函数给我两个不同的输出是怎么回事。
【问题讨论】:
-
我猜由于在这种情况下响应需要字符串,它隐式调用时刻对象上的 toString 方法,因此您在响应中得到它的字符串表示形式。我建议您在发送前将数据记录在 express 中,它应该与您在独立脚本上看到的内容确认
-
@Malice 看看下面我的回答。我发现这段代码在虚拟机中可以正常工作,所以这与我的操作系统有关。现在我需要找到这个问题:D
-
你能试试我的建议吗
标签: javascript node.js express momentjs