Javascript 如何编写模块来处理ExpressJS会话?
我是ExpressJS的新手(才3个月),我正在尝试做一个项目,以实践到目前为止我所学到的东西 我尝试编写一个模块来处理express会话。但它似乎不起作用——既没有错误也没有反应 代码是: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
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(我返回的所有与会话相关的内容);”