如何使用打字稿从快递会话中编写和读取自定义数据?

时间:2017-06-07 16:49:26

标签: node.js session express typescript types

我尝试将我的数据(如登录或身份证)插入会话。 但是当我写req.session.login时,typescript会返回错误: "对象可能未定义'。"我正在尝试一切,我在谷歌寻找答案,但我没有找到任何东西。

以下是我的'src/app.ts'包含在简单起始文件'bin/www.js'中。

import * as express from "express";
import * as session from 'express-session';
import * as cookieParser from "cookie-parser";

let app:express.Application = express();

app.use(cookieParser("sssh!"));
app.use(session({
    secret: 'sssssh! That\'s the secret',
    name: 'session',
    resave: false,
    saveUninitialized: true,
    cookie: {
      path: '*',
      maxAge: 60 * 60 * 1000,
      expires: new Date(Date.now() + (3 * 60 * 60 * 1000))
    }
}));
app.use("/test", (req:express.Request, res:express.Response, next:express.NextFunction)=>{
      let ses = req.session;
      // Here I want to do something similar to cookies, 
      //like req.session.login = "login" or ses.login = "login"
      res.cookie('name', "lastname");
      console.log(req.cookies);
      res.send(req.session);
});

如果我没错,这个声明(req.session.login = "login")应该在普通的javascript文件中运行。 我确信我错过了一些重要的事情。

1 个答案:

答案 0 :(得分:0)

您的代码工作正常,但path: '*'中的cookie除外。它应该是/,如果你想在所有路径上允许cookie。

并且,req.session.login = "login"工作正常。