Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何编写模块来处理ExpressJS会话?_Javascript_Node.js_Express_Express Session - Fatal编程技术网

Javascript 如何编写模块来处理ExpressJS会话?

Javascript 如何编写模块来处理ExpressJS会话?,javascript,node.js,express,express-session,Javascript,Node.js,Express,Express Session,我是ExpressJS的新手(才3个月),我正在尝试做一个项目,以实践到目前为止我所学到的东西 我尝试编写一个模块来处理express会话。但它似乎不起作用——既没有错误也没有反应 代码是: var express = require("express"); var session = require('express-session'); var MySQLStore = require('express-mysql-session')(session); // MySQL Session

我是ExpressJS的新手(才3个月),我正在尝试做一个项目,以实践到目前为止我所学到的东西

我尝试编写一个模块来处理express会话。但它似乎不起作用——既没有错误也没有反应

代码是:

var express = require("express");
var session = require('express-session');
var MySQLStore = require('express-mysql-session')(session);

// MySQL Session Configuration
const mySQLSessionConfiguration = {
    host: 'localhost',
    port: 1234,
    user: 'thisIsNotMyRealUsername',
    password: 'neitherThisIsMyRealPassword',
    database: 'aDatabase'
};

// Create Session
module.exports = function (){
    return (session({
    store: new MySQLStore(mySQLSessionConfiguration),
    secret: 'LOL',
    resave: true,
    saveUninitialized: true
    }));
};
在我的index.js文件中:

app.use(require("./modules/session.js"));
//如果我直接在index.js中编写这段代码,代码可以正常工作,但我想编写一个模块——我想学习

CLI中出错:无 浏览器中出错:无,但无。我的意思是两者都不是回应。一直在等待


这里怎么了。任何帮助都将不胜感激。谢谢

我在一个示例应用程序上复制了您的场景,并在“session.js”文件中编写了以下代码

然后在server.js中,我使用它如下:

app.use(require('./session.js'));
它的工作完全可以找到。
您可以分享您的错误日志以了解更多详细信息吗?

我已经在一个示例应用程序上复制了您的场景,并在“session.js”文件中编写了以下代码

var cookieParser = require('cookie-parser');    
var session = require('express-session');
var MySQLStore = require('express-mysql-session')(session);

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : '< MySQL username >',
  password : '< MySQL password >',
  database : '<your database name>'
});

connection.connect();

app.use(cookieParser());
app.use(session({
  secret: 'supersecret',
  resave: true,
  saveUninitialized: true,
  store: new mySQLStore(mysqlConnection: mysql.connection),
  cookie: { maxAge: 1000 } //whatever you'd like
}));
然后在server.js中,我使用它如下:

app.use(require('./session.js'));
它的工作完全可以找到。 您可以分享您的错误日志以了解更多详细信息吗?

var cookieParser=require('cookie-parser');
var cookieParser = require('cookie-parser');    
var session = require('express-session');
var MySQLStore = require('express-mysql-session')(session);

var mysql      = require('mysql');
var connection = mysql.createConnection({
  host     : 'localhost',
  user     : '< MySQL username >',
  password : '< MySQL password >',
  database : '<your database name>'
});

connection.connect();

app.use(cookieParser());
app.use(session({
  secret: 'supersecret',
  resave: true,
  saveUninitialized: true,
  store: new mySQLStore(mysqlConnection: mysql.connection),
  cookie: { maxAge: 1000 } //whatever you'd like
}));
var会话=需要(“快速会话”); var MySQLStore=require('express-mysql-session')(session); var mysql=require('mysql'); var connection=mysql.createConnection({ 主机:“localhost”, 用户:“”, 密码:“”, 数据库:“” }); connection.connect(); 使用(cookieParser()); 应用程序使用(会话)({ 秘密:“超级秘密”, 雷萨夫:是的, saveUninitialized:true, store:newmysqlstore(mysqlConnection:mysql.connection), cookie:{maxAge:1000}//随便你喜欢什么 }));
这就是我通常在express中使用express会话的方式。

var cookieParser=require('cookie-parser');
var会话=需要(“快速会话”);
var MySQLStore=require('express-mysql-session')(session);
var mysql=require('mysql');
var connection=mysql.createConnection({
主机:“localhost”,
用户:“”,
密码:“”,
数据库:“”
});
connection.connect();
使用(cookieParser());
应用程序使用(会话)({
秘密:“超级秘密”,
雷萨夫:是的,
saveUninitialized:true,
store:newmysqlstore(mysqlConnection:mysql.connection),
cookie:{maxAge:1000}//随便你喜欢什么
}));

这是我在express中使用express session时通常使用的方式。

我已通过将“应用程序”直接传递到模块中,而不是从模块返回会话,解决了此问题

固定代码如下所示:

// var express = require("express"); -- not required at all
var session = require('express-session');
var MySQLStore = require('express-mysql-session')(session);

// MySQL Session Configuration
const mySQLSessionConfiguration = {
    host: 'localhost',
    port: 1234,
    user: 'thisIsNotMyRealUsername',
    password: 'neitherThisIsMyRealPassword',
    database: 'aDatabase'
};

// Create Session
module.exports = function (app){    // app received :D
    app.use(session({               // app.use instead of return
    store: new MySQLStore(mySQLSessionConfiguration),
    secret: 'LOL',
    resave: true,
    saveUninitialized: true
    }));
};
在index.js中

var alpha = require("./modules/session.js")(app);

我已经修复了这个问题,将“应用程序”直接传递到模块中,而不是从模块返回会话

固定代码如下所示:

// var express = require("express"); -- not required at all
var session = require('express-session');
var MySQLStore = require('express-mysql-session')(session);

// MySQL Session Configuration
const mySQLSessionConfiguration = {
    host: 'localhost',
    port: 1234,
    user: 'thisIsNotMyRealUsername',
    password: 'neitherThisIsMyRealPassword',
    database: 'aDatabase'
};

// Create Session
module.exports = function (app){    // app received :D
    app.use(session({               // app.use instead of return
    store: new MySQLStore(mySQLSessionConfiguration),
    secret: 'LOL',
    resave: true,
    saveUninitialized: true
    }));
};
在index.js中

var alpha = require("./modules/session.js")(app);

谢谢你的回答。我用同样的方法。但我只是想制作一个模块,这样我就可以清楚地表达我的概念——我是个新来表达的人。问题已经解决。谢谢你的回答。我用同样的方法。但我只是想制作一个模块,这样我就可以清楚地表达我的概念——我是个新来表达的人。问题已经解决了。嘿,谢谢你抽出时间。我已经解决了这个问题。而不是返回会话对象。我已经将“app”直接传递到模块中,然后使用“app.use(我返回的所有与会话相关的内容);”嘿,谢谢你抽出时间。我已经解决了这个问题。而不是返回会话对象。我已经将“app”直接传递到模块中,然后使用“app.use(我返回的所有与会话相关的内容);”