Javascript 日期和时间库编译模式错误
我在我的应用程序中使用公共日期和时间npm包,如下所示Javascript 日期和时间库编译模式错误,javascript,node.js,aws-lambda,Javascript,Node.js,Aws Lambda,我在我的应用程序中使用公共日期和时间npm包,如下所示 var date = require('date-and-time') 接下来,我做出了这样的承诺 exports.handler = async (event)=> { var promise = new Promise(function(resolve,reject) { var pattern = date.compile("h:m:s") var now = new Date()
var date = require('date-and-time')
接下来,我做出了这样的承诺
exports.handler = async (event)=> {
var promise = new Promise(function(resolve,reject) {
var pattern = date.compile("h:m:s")
var now = new Date()
var time = date.format(now,pattern,false)
})
await Promise.all([promise])
}
我得到以下错误:
TypeError: formatString.replace is not a function
at Object.date.format (/var/task/node_modules/date-and-time/date-and-time.js:147:29)
at /var/task/index.js:635:25
at processTicksAndRejections (internal/process/task_queues.js:97:5)
at async Promise.all (index 0)
我做错了什么
图书馆链接:
库函数如下所示:
/**
* formatting a date
* @param {Date} dateObj - a Date object
* @param {string} formatString - a format string
* @param {boolean} [utc] - output as UTC
* @returns {string} a formatted string
*/
date.format = function (dateObj, formatString, utc) {
var d = date.addMinutes(dateObj, utc ? dateObj.getTimezoneOffset() : 0),
formatter = locales[lang].formatter;
d.utc = utc;
return formatString.replace(/\[[^\[\]]*]|\[.*\][^\[]*\]|([A-Za-z])\1*|./g, function (token) {
return formatter[token] ? formatter.post(formatter[token](d, formatString)) : token.replace(/\[(.*)]/, '$1');
});
};
这与承诺无关 您的库需要一个字符串,但您传递给它一个已编译的正则表达式 不过,类似的方法应该可以奏效:
var pattern = "h:m:s"
var now = new Date()
var time = date.format(now,pattern,false)
让我试试看,虽然链接显示了使用库的正确方法是与compilewow一起使用,但它可以工作!!太奇怪了,他们的页面上有过时的文档!!显然,支持编译只在版本13中受支持,而我使用的是版本12!