x2c*_*ese 2 express typescript express-session
我正在努力在我的 TS 项目中设置快速会话。当我进行基本设置(JS 方式)时,我创建了一个在每个 API 需求时调用的 MW,这样我就可以在会话中创建或不创建新的用户数组。
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();
}
Run Code Online (Sandbox Code Playgroud)
斗争在于 .user,TS 向我显示此错误
Property 'user' does not exist on type 'never'.
Run Code Online (Sandbox Code Playgroud)
你有办法克服它吗?
提前致谢,
保罗
根据Express-Session 类型的源代码,您需要自己定义 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;
}
Run Code Online (Sandbox Code Playgroud)
我建议您这样做,因为您更了解用户拥有哪些属性:
例如(也许您有不同的数据)在项目的 index.d.ts 文件中:
declare module 'express-session' {
interface SessionData {
user: string;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3132 次 |
| 最近记录: |