繁体   English   中英

了解connect-mongo的用法,如何在会话中使用connect-mongo

[英]understand the connect-mongo usage, how to use connect-mongo for sessions

我在一个node.js应用程序中,并且试图将会话数据存储在mongoDB数据库中。

但是我不了解connect-mongo的用法,我想知道是否有人可以向我解释正确的用法以及我无法连接到mongoDB数据库的内容。

我的app.js代码是

var config = require('./config')
    , express = require('express')
    , passport = require('passport')
    , site = require('./site')
    , oauth2 = require('./oauth2')
    , user = require('./user')
    , client = require('./client')
    , token = require('./token')
    , https = require('https')
    , fs = require('fs')
    , path = require('path')
    , mongoose = require('mongoose')
    , MongoStore = require('connect-mongo')(express);

var sessionStorage;

    var MongoStore = require('connect-mongo')(express);
    console.log('Using MongoDB for the Session');
    sessionStorage = new MongoStore({
        db: config.session.dbName
    });

var app = express();
app.set('view engine', 'ejs');
app.use(express.logger());
app.use(express.cookieParser());
app.use(express.urlencoded());
app.use(express.json());


//Session Configuration
app.use(express.session({
    secret: config.session.secret,
    store: sessionStorage,
    key: "authorization.sid",
    cookie: {maxAge: config.session.maxAge }
}));

app.use(passport.initialize());
app.use(passport.session());
app.use(app.router);
app.use(function(err, req, res, next) {
    if(err) {
        res.status(err.status);
        res.json(err);
    } else {
        next();
    }
});
require('./auth')(passport); 

app.get('/', site.index);
app.get('/login', site.loginForm);
app.post('/login', site.login);
app.get('/logout', site.logout);
app.get('/account', site.account);

app.get('/dialog/authorize', oauth2.authorization);
app.post('/dialog/authorize/decision', oauth2.decision);
app.post('/oauth/token', oauth2.token);

app.get('/api/userinfo', user.info);
app.get('/api/clientinfo', client.info);

app.get('/api/tokeninfo', token.info);

app.use(express.static(path.join(__dirname, 'public')));

mongoose.connect('mongodb://user:pass@host:10026/dbName');

var db = mongoose.connection;

db.on('error',console.error.bind(console, 'connection error:'));
db.once('open', function callback() {
    console.log("Connected to db");
});

mongoose.set('debug', true);

var options = {
    key: fs.readFileSync('certs/privatekey.pem'),
    cert: fs.readFileSync('certs/certificate.pem')
};

https.createServer(options, app).listen(3000);
console.log("Authorization Server started on port 3000");

和输出错误是

authorization-server\node_modules\connect-mongo\lib\connect-mongo.js:155
          throw new Error('Error connecting to database <' + err + '>');
                ^
Error: Error connecting to database <Error: failed to connect to [127.0.0.1:27017]>

请注意,在您的错误消息中,猫鼬试图在默认端口连接到本地主机。 另外,您需要在文件顶部定义数据库连接。

更改:

mongoose.connect('mongodb://user:pass@host:10026/dbName');

至:

mongoose.connect('mongodb://localhost/dbName');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM