gpt4 book ai didi

node.js - 在 MongoClient.connect 中初始化 session

转载 作者:太空宇宙 更新时间:2023-11-04 01:03:32 25 4
gpt4 key购买 nike

我正在尝试重用数据库对象。 session 初始化在 Mongoconnect 回调之外工作正常。但是当我将其移至回调中时, session cookie 并未在浏览器中设置。有什么想法吗??

var express=require('express');
var bodyParser=require('body-parser');
var cookieParser=require('cookie-parser');
var session=require('express-session');

var mongodb=require('mongodb'),
MongoClient = mongodb.MongoClient;
var MongoStore = require('connect-mongo')(session);

var util=require('util');
var assert=require('assert');
var db;



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


MongoClient.connect('mongodb://localhost:27017/mydb',function(err,database){
if(!err)
{


app.use(session(
{ name:'sessionCookie',secret:'secret',saveUninitialized:true,resave:true ,
store: new MongoStore({ db:database })
}
));

app.listen(3000);

}

});

最佳答案

这似乎是应用程序对象初始化时间和 session 初始化时间之间的计时问题。我稍微改变了代码,问题似乎已经解决了。我不完全确定根本原因。欢迎大家踊跃参与

var express=require('express');
var bodyParser=require('body-parser');
var cookieParser=require('cookie-parser');
var session=require('express-session');

var mongodb=require('mongodb'),
MongoClient = mongodb.MongoClient;
var MongoStore = require('connect-mongo')(session);

var util=require('util');
var assert=require('assert');
var db;



var app;



MongoClient.connect('mongodb://localhost:27017/mydb',function(err,database){
if(!err)
{
app=express();
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended:true}));
app.use(cookieParser());
app.use(session(
{ name:'sessionCookie',secret:'secret',saveUninitialized:true,resave:true ,
store: new MongoStore({ db:database })
}
));

app.listen(3000);
}

});

关于node.js - 在 MongoClient.connect 中初始化 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25042704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com