我正在尝试使用 Next.js + NextAuth.js + Prisma 在我的项目中实现身份验证流程。我正在使用 GitHub Provider。它在我的本地计算机上运行得很好,我可以登录并重定向回仪表板。我认为这可能是数据库问题,所以我使用我的生产数据库 URL 进行了测试,但在本地环境中仍然工作正常。仅在生产模式下才会出现错误。
以下是我在 Vercel 中收到的错误消息。
[GET] /api/auth/callback/github?code=e19191fb050f6a1708e8&state=lV7j49LEjSWE9GHMBWjQ-6WGr62yqziPqhkWURnGBWQ
15:55:11:41
2022-05-16T06:55:11.782Z 4b29fadc-0c2a-4f7a-9140-fbbb45d159f2 ERROR [next-auth][error][adapter_error_getUserByAccount]
https://next-auth.js.org/errors#adapter_error_getuserbyaccount Cannot read property 'findUnique' of undefined {
message: "Cannot read property 'findUnique' of undefined",
stack: "TypeError: Cannot read property 'findUnique' of undefined\n" +
' at getUserByAccount (/var/task/node_modules/@next-auth/prisma-adapter/dist/index.js:11:45)\n' +
' at _callee2$ (/var/task/node_modules/next-auth/core/errors.js:315:29)\n' +
' at tryCatch (/var/task/node_modules/regenerator-runtime/runtime.js:63:40)\n' +
' at Generator.invoke [as _invoke] (/var/task/node_modules/regenerator-runtime/runtime.js:294:22)\n' +
' at Generator.next (/var/task/node_modules/regenerator-runtime/runtime.js:119:21)\n' +
' at asyncGeneratorStep (/var/task/node_modules/@babel/runtime/helpers/asyncToGenerator.js:3:24)\n' +
' at _next …Run Code Online (Sandbox Code Playgroud) 我有两个结果列。一个是用户名,另一个是日期时间,可以检查每个用户何时查看帖子。如果用户未看到该帖子,则日期时间值为NULL。
我想订购这样的数据。date-time为null或不为null都是按用户名字母顺序排列的。但应将空数据和非空数据分开。
SELECT u.username AS username,
MAX(w1.date) AS lastdate
FROM w1
RIGHT OUTER JOIN user_info u ON w1.userid = u.userid
WHERE u.usergroup = 'student'
GROUP BY username
ORDER BY lastdate,
username;
Run Code Online (Sandbox Code Playgroud)
当我运行此查询时,当日期时间为NULL时,我得到的结果是用户名按字母顺序排序,但是当日期时间不为null时,按日期时间排序。
希望大家能理解,如果不清楚,请发表评论。