TYPESCRIPT - 快速会话处理
TYPESCRIPT - express-session handling
我正在努力将快速会话设置到我的 TS 项目中。当我对其进行基本设置(JS 方式)时,我创建了一个 MW,它在每个 API 需求时被调用,这样我就可以在我的会话中创建或不创建新的用户数组。
import {Request, Response, NextFunction} from 'express'
module.exports = (req: Request, res: Response, next: NextFunction) => {
console.log('session checker : ', req.session)
if (!req.session){
req.session.user = []
console.log('session initialized')
}
next();
}
斗争在.user 上,TS 向我显示此错误
Property 'user' does not exist on type 'never'.
你有克服它的想法吗?
提前致谢,
保罗
根据 express-session 类型的 source code,您需要自己定义 SessionData 中可用的属性(在您的代码库中的某处):
/**
* This interface allows you to declare additional properties on your session
object using [declaration merging]
(https://www.typescriptlang.org/docs/handbook/declaration-merging.html).
*
* @example
* declare module 'express-session' {
* interface SessionData {
* views: number;
* }
* }
*
*/
interface SessionData {
cookie: Cookie;
}
我建议你这样做,因为你更了解用户具有哪些属性:
例如(也许你有不同的数据)在你项目的 index.d.ts 文件中:
declare module 'express-session' {
interface SessionData {
user: string;
}
}
我正在努力将快速会话设置到我的 TS 项目中。当我对其进行基本设置(JS 方式)时,我创建了一个 MW,它在每个 API 需求时被调用,这样我就可以在我的会话中创建或不创建新的用户数组。
import {Request, Response, NextFunction} from 'express'
module.exports = (req: Request, res: Response, next: NextFunction) => {
console.log('session checker : ', req.session)
if (!req.session){
req.session.user = []
console.log('session initialized')
}
next();
}
斗争在.user 上,TS 向我显示此错误
Property 'user' does not exist on type 'never'.
你有克服它的想法吗?
提前致谢,
保罗
根据 express-session 类型的 source code,您需要自己定义 SessionData 中可用的属性(在您的代码库中的某处):
/**
* This interface allows you to declare additional properties on your session
object using [declaration merging]
(https://www.typescriptlang.org/docs/handbook/declaration-merging.html).
*
* @example
* declare module 'express-session' {
* interface SessionData {
* views: number;
* }
* }
*
*/
interface SessionData {
cookie: Cookie;
}
我建议你这样做,因为你更了解用户具有哪些属性:
例如(也许你有不同的数据)在你项目的 index.d.ts 文件中:
declare module 'express-session' {
interface SessionData {
user: string;
}
}