Javascript SequelizeDatabaseError:时区为“;的时间戳类型的输入语法无效;无效日期”;,ParseISO from date fns返回的日期无效
当我收到Javascript SequelizeDatabaseError:时区为“;的时间戳类型的输入语法无效;无效日期”;,ParseISO from date fns返回的日期无效,javascript,node.js,postgresql,date-fns,Javascript,Node.js,Postgresql,Date Fns,当我收到req.query并将其传递给我的数据库中的日期值和发出请求时,一切正常,但当我收到日期时,它说无效,就像你在我的日志屏幕中看到的那样,我尝试使用console.log查看值,并且总是在我从req.query收到该值时,即使我使用了parsedISO,我也不知道为什么,有人能帮我吗? 我使用isValid验证我的日期,它返回false 这里是me代码和一些屏幕: const date = req.query; console.log(date); const parsedDate = p
req.query
并将其传递给我的数据库中的日期值和发出请求时,一切正常,但当我收到日期时,它说无效,就像你在我的日志屏幕中看到的那样,我尝试使用console.log
查看值,并且总是在我从req.query
收到该值时,即使我使用了parsedISO
,我也不知道为什么,有人能帮我吗?
我使用isValid
验证我的日期,它返回false
这里是me代码和一些屏幕:
const date = req.query;
console.log(date);
const parsedDate = parseISO(date);
const startDay = startOfDay(parsedDate);
const endDay = endOfDay(parsedDate);
const appointments = await Appointment.findAll({
where: [
{
provider_id: req.userId,
canceled_at: null,
date: {
[Op.between]: [startDay, endDay],
},
},
],
order: ['date'],
});
return res.json(appointments);
}
返回的错误为:
Executing (default): SELECT "id", "date", "canceled_at", "created_at" AS "createdAt", "updated_at" AS "updatedAt", "user_id", "provider_id" FROM "appointments" AS "Appointments" WHERE (("Appointments"."provider_id" = 2 AND "Appointments"."canceled_at" IS NULL AND "Appointments"."date" BETWEEN 'Invalid date' AND 'Invalid date')) ORDER BY "Appointments"."date";
(node:37307) UnhandledPromiseRejectionWarning: SequelizeDatabaseError: invalid input syntax for type timestamp with time zone: "Invalid date"
at Query.formatError (/Users/dariocoronel/Desktop/practices/Gostack/javascript/repo/backend/api/node_modules/sequelize/lib/dialects/postgres/query.js:386:16)
at Query.run (/Users/dariocoronel/Desktop/practices/Gostack/javascript/repo/backend/api/node_modules/sequelize/lib/dialects/postgres/query.js:87:18)
at processTicksAndRejections (internal/process/task_queues.js:97:5)
(node:37307) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:37307) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
请将控制台日志中的信息复制并粘贴到您的问题中,而不是使用屏幕截图。哪里是
parseISO
,startOfDay
和isValid
的来源?另外,date
看起来是一个对象,{date:'2021-01-01T17:20:05.247Z'}
似乎在解析整个对象,而不仅仅是时间戳字符串。