如何在Next.js custom express server中设置express会话(使用mongoDBstore)

如何在Next.js custom express server中设置express会话(使用mongoDBstore),express,server,next.js,express-session,Express,Server,Next.js,Express Session,我想在我的Next.js自定义express服务器中安装express会话?我怎么做?我在网站上找不到任何解决方案。。。我试过用这种方法,但还是不起作用。。。 我想在会话中存储cookie,以便更安全地进行身份验证。我看到还有下一个会话,但我只找到了带有Api路由的示例 const express=require(“express”); const cacheableResponse=require(“可缓存响应”); const next=要求(“下一步”); const mongoose=需

我想在我的Next.js自定义express服务器中安装express会话?我怎么做?我在网站上找不到任何解决方案。。。我试过用这种方法,但还是不起作用。。。 我想在会话中存储cookie,以便更安全地进行身份验证。我看到还有下一个会话,但我只找到了带有Api路由的示例

const express=require(“express”);
const cacheableResponse=require(“可缓存响应”);
const next=要求(“下一步”);
const mongoose=需要(“mongoose”);
const PORT=process.env.PORT | 3000;
const dev=process.env.NODE_env!==“生产”;
const session=需要(“快速会话”);
const MongoStore=需要(“连接mongo”)(会话);
const passport=需要(“护照”);
const cookieParser=require(“cookie解析器”);
常量粉笔=需要(“粉笔”);
const app=next({dev});
const handle=app.getRequestHandler();
const ssrCache=cacheableResponse({
ttl:1000*60*60,//1小时
get:async({req,res})=>{
const rawResEnd=res.end;
const data=等待新承诺((解析)=>{
res.end=(有效负载)=>{
如果(res.statusCode==200){
解析(有效载荷);
}否则{
解决();
}
};
应用程序渲染(请求、恢复、请求路径、{
…请求查询,
…请求参数,
});
});
res.end=rawResEnd;
返回{data};
},
send:({data,res})=>res.send(data),
});
应用程序
.准备
.然后(()=>{
const server=express();
use(express.json());
use(express.urlencoded({extended:true}));
使用(cookieParser());
使用(passport.initialize());
server.use(passport.session());
const showRoutes=require(“./routes/index.js”);
使用(“/api”,showRoutes(server));
get(“/”,(req,res)=>ssrCache({req,res}));
server.get(“/Profile”,(req,res)=>{
返回ssrCache({req,res});
});
server.get(“/Cart)”,(req,res)=>{
返回ssrCache({req,res});
});
server.get(“/WishList)”,(请求,res)=>{
返回ssrCache({req,res});
});
服务器。所有(“*”,(请求,res)=>{
返回句柄(req、res);
});
猫鼬
.connect(“连接的URL”{
useNewUrlParser:true,
useUnifiedTopology:正确,
useCreateIndex:true,
UseFindModify:false,
dbName:“分开”,
})
.catch((错误)=>console.log(错误));
const connectionDB=mongoose.connection;
连接b.一次(“打开”,()=>{
log(chalk.yellowBright(“MongoDB数据库连接”+chalk.greenBright.underline.bold(“已成功建立”)));
});
**server.use(
会议({
resave:false,
saveUninitialized:false,
秘密:“秘密”,
曲奇:{
最大值:3600000*24*14,
安全:错误,
},
商店:新蒙哥斯托尔({
mongooseConnection:connectionDB,
集合:“会话”,
dbName:“分开”,
}),
})
);**
服务器侦听(端口,(错误)=>{
如果(错误)抛出错误;
log(`服务器正在运行:${chalk.blue(`http://localhost:${PORT}`}`);
});
})
.catch((ex)=>{
控制台错误(例如堆栈);
过程。退出(1);
});