【问题标题】:connect-mongo is not working if we use clusters如果我们使用集群,connect-mongo 将无法正常工作
【发布时间】:2020-03-16 23:22:02
【问题描述】:

connect-mongo 不适用于共享 mongo 集群。我们在我们的应用程序中添加了“connect-mongo”:“^0.8.2”模块,添加了以下配置细节。

"mongoStore": {
        "url" : "user:password@server1:27400/zeta-sessions,server2:27400/zeta-sessions,server3:27400/zeta-sessions",
        "name" : "web-app",
        "secret": "secret",
        "cookie": {
            "path": "/",
            "httpOnly": true,
            "maxAge": 31556952000 // 1 year
        },
"options" : {
                        "server": { "poolsize": 5 }
                        ,"replset": {"rs_name": "zeta-po"}

        },
        "resave": true,
        "saveUninitialized": true,
        "store": null    // NB: this will be overlaid in our module
}

还有,

// ./lib/mongo-session.js
'use strict';

var session = require('express-session'),
    MongoStore = require('connect-mongo')(session);

/** Creates a Mongo-backed session store.
 *
 * @param {Object} [config] Configuration options for express-session and connect-mongo
 * @returns {Object} Returns a session middleware which is backed by Mongo
 */
module.exports = function (config) {
    // add the 'store' property to our session configuration
    config.mongoStore.store = new MongoStore(config.mongoStore);

    // create the actual middleware
    return session(config.mongoStore);
};

执行服务时出现以下错误。

Possibly unhandled Error: Required MongoStore option `db` missing or is not a string.
    at buildUrlFromOptions (/app/home/appjs/zeta-demo/node_modules/connect-mongo/lib/connect-mongo.js:163:15)
    at new MongoStore (/app/home/appjs/zeta-demo/node_modules/connect-mongo/lib/connect-mongo.js:250:7)
    at module.exports (/app/home/appjs/zeta-demo/web/lib/mongo-session.js:14:31)
    at resolveImpl (/app/home/appjs/zeta-demo/node_modules/kraken-js/node_modules/meddleware/index.js:98:20)
    at resolve (/app/home/appjs/zeta-demo/node_modules/kraken-js/node_modules/meddleware/index.js:53:18)
    at register (/app/home/appjs/zeta-demo/

请分享你的想法。

【问题讨论】:

  • zeta-sessions DB 是否已经创建??
  • 是的 zeta-sessions 已创建

标签: node.js mongodb mongoose connect-mongo


【解决方案1】:

也许有点晚了,但我也遇到了类似的问题,我可以通过将我的 IP 地址添加到 IP 访问列表中来解决它,正如 this issue 中所解释的那样。在您的 MongoDB Atlas 用户中,转到 Security -> Network Access 并添加您的 IP 或将其设置为由任何 IP 访问。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    相关资源
    最近更新 更多