跟着皓哥的视频学习进行到:Node.js 服务端应用开发:资源接口(改造内容分页功能)在改造内容分页功能后,发现无法实现内容列表的展示了。错误如下:

后面发现皓哥在post.service.ts文件中增加了currentUser:
/**
* 获取内容列表
*/
export interface GetPostsOptionsFilter {
name: string;
sql?: string;
param?: string;
}
export interface GetPostsOptionsPagination {
limit: number;
offset: number;
}
interface GetPostsOptions {
sort?: string;
filter?: GetPostsOptionsFilter;
pagination?: GetPostsOptionsPagination;
currentUser?: TokenPayload;
}
export const getPosts = async (options: GetPostsOptions) => {
const {
sort,
filter,
pagination: { limit, offset },
currentUser,
} = options;
// SQL 参数
let params: Array<any> = [limit, offset];
// 设置 SQL 参数
if (filter.param) {
params = [filter.param, ...params];
}
// 当前用户
const { id: userId } = currentUser;
const statement = `
SELECT
post.id,
post.title,
post.content,
${sqlFragment.user},
${sqlFragment.totalComments},
${sqlFragment.file},
${sqlFragment.tags},
${sqlFragment.totalLikes},
(
SELECT COUNT(user_like_post.postId)
FROM user_like_post
WHERE
user_like_post.postId = post.id
&& user_like_post.userId = ${userId}
) AS liked
FROM post
${sqlFragment.leftJoinUser}
${sqlFragment.innerJoinOneFile}
${sqlFragment.leftJoinTag}
${filter.name == 'userLiked' ? sqlFragment.innerJoinUserLikePost : ''}
WHERE ${filter.sql}
GROUP BY post.id
ORDER BY ${sort}
LIMIT ?
OFFSET ?
`;
const [data] = await connection.promise().query(statement, params);
return data;
};
并且在auth.middleware.ts文件中增加了“当前用户”并修改了authGuard中间件:
/**
* 当前用户
*/
export const currentUser = (
request: Request,
response: Response,
next: NextFunction,
) => {
let user = {
// 未登录的用户
id: null,
name: 'anonymous',
};
try {
// 提取 Authorization
const authorization = request.header('Authorization');
// 提取 JWT 令牌
const token = authorization.replace('Bearer ', '');
if (token) {
// 验证令牌
const decoded = jwt.verify(token, PUBLIC_KEY, {
algorithms: ['RS256'],
});
user = decoded as any;
}
} catch (error) {}
// 在请求里添加当前用户
request.user = user;
next();
};
于是我做了上述修改。但是仍然报错:

这回彻底懵圈,求皓哥或其他知道如何解决问题的朋友指点。