快速会话不适用于多部分/表单数据

时间:2019-01-03 15:17:50

标签: node.js multipartform-data express-session

我的问题是关于节点js的快速会话。

我正在如下使用快速会话和mysql会话存储

0*1*(A*(n-1)**2+B*(n-1)+C)

登录时,我将会话数据保存如下

import * as express from "express";
import * as bodyParser from "body-parser";
import * as expressSession from 'express-session';
import * as MySQLStore from 'express-mysql-session';

let sessionStoreConfig = {
            host: host,
            user: user,
            password: password,
            database: db,
            clearExpired: true
            checkExpirationInterval: 900000,
            createDatabaseTable: true,
            connectionLimit: 1,
            endConnectionOnClose: true,
            charset: 'utf8mb4_bin',
            schema: {
                tableName: tableName,
                columnNames: {
                    session_id: 'session_id',
                    expires: 'expires',
                    data: 'data'
                }
            }
        },
    }
let sessionConfig = {
    secret: mysecret,
    resave: true,
    saveUninitialized: false,
    name: someName,
    unset: 'destroy',
    store: null,
    cookie: {
        path: '/',
        httpOnly: true,
        secure: false,
        maxAge: 3600000,
        sameSite: false,
    },
}

var app = express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

MySQLStore(expressSession);
let sessionStore = new MySQLStore(sessionStoreConfig);
sessionConfig.store = this.sessionStore;
app.use(expressSession(sessionConfig));

当content-type为application / json时,一切正常。

当我从有角度的客户端发布文件时,由于this的原因,我没有设置content-type,并且浏览器自动设置了content-type = multipart / form-data以及边界。

当内容类型为多部分/表单数据时,Express会话未检索数据。

我需要此会话数据以确保文件来自经过身份验证的用户,并且我必须将用户引用保存在数据库中。 而且,我正在使用multer在节点js上上传文件。

0 个答案:

没有答案