Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js NodeJS Mongoose将mongo会话存储连接到mongo_Node.js_Express_Connect Mongo - Fatal编程技术网

Node.js NodeJS Mongoose将mongo会话存储连接到mongo

Node.js NodeJS Mongoose将mongo会话存储连接到mongo,node.js,express,connect-mongo,Node.js,Express,Connect Mongo,我尝试以我可以在nodejs中使用会话的方式配置我的connectmongo,该会话是mongo持久化的。我使用以下代码 var mongoose = require('mongoose'); function connect(url, callback) { mongoose.connect(url); var connection = mongoose.connection; connection.on('error', console.error.bind(console,

我尝试以我可以在nodejs中使用会话的方式配置我的connectmongo,该会话是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
        })
    }));

})
我什么都试过了,只是执行了一些代码,但在我的参考资料中从未使用过对象会话

获取:TypeError:无法设置未定义的属性“asd”

代码:


有人可以给出解决方案的提示吗?

您需要在配置会话后定义路由

...
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(...
});
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(...
});