2014-10-17 38 views
0

我嘗試以我可以在使用mongo保存的nodejs中使用會話的方式配置我的connect-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對象會話。

獲取:類型錯誤:無法未定義

代碼的設置屬性 'ASD':

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

Somone的可以給一個解決方案的提示?

回答

1

您需要定義您的路線之後您配置您的會話。

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

在你的情況下你的connect的回調。也許只是開始聆聽它。

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

非常感謝你! – 2014-10-17 17:02:09