node.js返回未定义的问题

任何想法为什么我得到undefined当我尝试输出helpers.limitsOfToday.todayStart ? 如果我尝试输出helpers.limitsOfToday我可以看到这个函数。

这是我的代码:

helpers.js文件

 const limitsOfToday = () => { var todayStart = new Date(); todayStart.setHours(0, 0, 0, 0); var todayEnd = new Date(); todayEnd.setHours(23, 59, 59, 999); return { todayStart: todayStart, todayEnd: todayEnd, } }; module.exports = { limitsOfToday }; 

其他文件

 const helpers = require('./helpers.js'); helpers.limitsOfToday.todayStart // this is undefined 

属性limitsOfToday是一个函数,你正在返回todayStart作为返回对象的关键。

执行limitsOfToday ,一切都应该像预期的那样工作:

 const helpers = require('./helpers.js'); helpers.limitsOfToday().todayStart; // your start date 

helpers.js文件中写入

 module.exports = limitsOfToday; 

并在其他文件

 helpers().todayStart 

另一个解决scheme是写在helpers.js文件

 module.exports = {limitsOfToday: limitsOfToday}; 

并在其他文件

 helpers.limitsOfToday().todayStart 

你正在用limitsOfToday方法导出对象,这只是一个函数,所以当你写helpers.limitsOfToday.todayStart你试图访问属性todayStart对象的方法不起作用。 你需要做的是打电话

 helpers.limitsOfToday().todayStart 

因此limitsOfToday方法返回可以访问的todayStart属性的对象。

更新你的最后一行是这样的module.exports = { limitsOfToday: limitsOfToday() };