在Node.js Express应用中使用date-fns包触发TypeError问题咨询
报错原因
你执行的引入逻辑将date-fns导出的完整工具对象赋值给了format变量,format仅为该对象下挂载的子方法,直接调用变量会触发如下错误:
TypeError: format is not a function
正确引入方案
方案1:解构引入指定方法(推荐)
该写法支持打包工具摇树优化,剔除未使用的方法减少产物体积,引入代码如下:const { format } = require('date-fns');引入后即可直接调用
format方法,使用示例:// 格式化当前时间为 年-月-日 时:分:秒 格式 const formattedNow = format(new Date(), 'yyyy-MM-dd HH:mm:ss');方案2:全量引入后按属性调用
如果项目需要使用date-fns的多个工具方法,可全量引入包后通过属性访问调用对应方法:const dateFns = require('date-fns'); // 调用format方法 const formattedNow = dateFns.format(new Date(), 'yyyy-MM-dd HH:mm:ss'); // 可同步调用其他内置方法,例如计算两个日期的间隔天数 const diffDays = dateFns.differenceInDays(new Date(2024, 5, 1), new Date(2024, 4, 1));
以上两种写法适配所有date-fns稳定版本,可直接在Node.js CommonJS环境下使用。
内容的提问来源于stack exchange,提问作者ArthurJ
相关产品推荐
相关产品推荐

