2014-10-17 4 views
0

Я пытаюсь настроить мой connect-mongo таким образом, что я могу использовать сеанс в nodejs, который сохраняется с mongo. Я использую следующий кодNodeJS Mongoose connect-mongo Сессия с Mongo

var mongoose = require('mongoose'); 

function connect(url, callback) { 
    mongoose.connect(url); 

    var connection = mongoose.connection; 
    connection.on('error', console.error.bind(console, 'connection error:')); 
    connection.once('open', function() { 
     console.log("Mongoose connected at: ", url); 
     callback(connection); 
    }); 
} 

var express = require("express"); 
var body_parser = require('body-parser'); 
var cookie_parser = require('cookie-parser'); 
var hogan_express = require('hogan-express'); 
var session = require('express-session'); 
var mongo_store = require('connect-mongo')(session); 

var express = require("express"); 

var app = express(); 

app.engine('html', hogan_express); 

app.set('view engine', 'html'); 
app.set("views", "views"); 

app.use("/libs", express.static("bower_components")); 

if (!config.development) { 
    app.use(express.static("min")); 
} 
app.use(express.static("public")); 

connect("MONGODBURL",function(mongoose_connection){ 
    app.use(body_parser.json()); 
    app.use(cookie_parser()); 
    app.use(session({ 
     secret: "asd", 
     store: new mongo_store({ 
      mongoose_connection: mongoose_connection 
      // db: mongoose_connection.db 
     }) 
    })); 

}) 

Я пробовал все, но выполнения некоторого кода я никогда не объектную сессию в моем Рез refrence.

Начало: TypeError: Невозможно установить свойство 'ASD' неопределенной

Код:

app.get("/rest/test",function(req, res) { 
    req.session.asd="test"; 
    res.send(req.session.asd) 
}); 

Сомон может дать подсказку для решения?

ответ

1

Необходимо определить ваши маршруты после ваша конфигурация вашей сессии.

... 
app.use(session.... 
... 
app.get("/... 

Внутри обратного вызова вашего соединения в вашем случае. Наверное, начните слушать внутри него.

connect("MONGODBURL",function(mongoose_connection){ 
    app.use(body_parser.json()); 
    app.use(cookie_parser()); 
    app.use(session({ 
     secret: "asd", 
     store: new mongo_store({ 
      mongoose_connection: mongoose_connection 
      // db: mongoose_connection.db 
     }) 
    })); 
    app.get("/rest/test",function(req, res) { 
     req.session.asd="test"; 
     res.send(req.session.asd) 
    }); 
    app.listen(... 
}); 
+0

большое спасибо !!! –

Смежные вопросы