首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >了解connect-mongo的用法,以及如何使用connect-mongo进行会话

了解connect-mongo的用法,以及如何使用connect-mongo进行会话
EN

Stack Overflow用户
提问于 2014-06-28 19:45:21
回答 1查看 539关注 0票数 0

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

但是我不理解connect-mongo的用法,我希望有人能告诉我正确的用法,以及我不能连接到我的mongoDB数据库的地方。

我的app.js代码是

代码语言:javascript
复制
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");

输出误差为

代码语言:javascript
复制
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]>
EN

回答 1

Stack Overflow用户

发布于 2014-06-29 02:52:55

请注意,在您的错误消息中,mongoose正在尝试连接到默认端口上的本地主机。此外,您还需要在文件的顶部定义数据库连接。

更改:

代码语言:javascript
复制
mongoose.connect('mongodb://user:pass@host:10026/dbName');

至:

代码语言:javascript
复制
mongoose.connect('mongodb://localhost/dbName');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24466461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档