Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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:您不能同时连接“MangoSo.Cuthor()”多次 我在一个带有膝关节炎的NoDJS中使用AWS机器,这个应用程序连接到一个不同的AWS机器上的MangGDB。我得到的错误是MongooseError:您不能在连接时多次mongoose.connect()。我还使用pm2运行应用程序_Node.js_Mongodb_Mongoose_Pm2_Koa - Fatal编程技术网

Node.js 带有膝关节炎和蒙哥马利错误的NoDEJS:您不能同时连接“MangoSo.Cuthor()”多次 我在一个带有膝关节炎的NoDJS中使用AWS机器,这个应用程序连接到一个不同的AWS机器上的MangGDB。我得到的错误是MongooseError:您不能在连接时多次mongoose.connect()。我还使用pm2运行应用程序

Node.js 带有膝关节炎和蒙哥马利错误的NoDEJS:您不能同时连接“MangoSo.Cuthor()”多次 我在一个带有膝关节炎的NoDJS中使用AWS机器,这个应用程序连接到一个不同的AWS机器上的MangGDB。我得到的错误是MongooseError:您不能在连接时多次mongoose.connect()。我还使用pm2运行应用程序,node.js,mongodb,mongoose,pm2,koa,Node.js,Mongodb,Mongoose,Pm2,Koa,这是连接到数据库的代码: const mongoose = require('mongoose'); const { transform } = require('koa-bootstrap-service/lib/plugins'); const url = require('url'); const config = require('../../config/index'); mongoose.Promise = Promise; function makeMongoUrl(

这是连接到数据库的代码:

    const mongoose = require('mongoose');
const { transform } = require('koa-bootstrap-service/lib/plugins');
const url = require('url');

const config = require('../../config/index');

mongoose.Promise = Promise;

function makeMongoUrl() {
    const dbSettings = config.mongoDb;
    if (!dbSettings) {
        return false;
    }

    if (dbSettings.url) {
        return dbSettings.url;
    }

    const urlObj = {
        hostname: dbSettings.host,
        port: dbSettings.port,
        pathname: `/${dbSettings.db}`,
        query: dbSettings.options,
        protocol: 'mongodb',
        slashes: true,
    };
    if (dbSettings.username) {
        urlObj.auth = `${dbSettings.username}:${dbSettings.password || ''}`;
    }
    return url.format(urlObj);
}

function connectMongoDb() {
    mongoose.plugin(transform.middleware());
    mongoose
        .connect(makeMongoUrl(), {
            useNewUrlParser: true,
            useCreateIndex: true,
            useFindAndModify: false,
            keepAlive: 1,
            connectTimeoutMS: 30000,
            reconnectTries: 30,
        })
        .then(() => {
            global.Logger.debug('Mongoose Connected');
        })
        .catch(({ stack }) => {
            global.Logger.error(stack);
            process.exit(0);
        });
}

connectMongoDb();

引述:

在mongoose版本5.6.1中添加了检查

恢复到旧版本以获得快速修复


如果在package.json中,猫鼬的版本是这样的:
^5.x.y
,那么插入符号
^
将使其更新到最新的次要版本,即最高的
x
(如
5.9.y
,而不是
6.x.y
)。
因此,必须强制执行旧版本


更新:根据此答案:

必须删除任何控制器文件中的任何其他连接,只有主文件才能建立连接。

引述:

在mongoose版本5.6.1中添加了检查

恢复到旧版本以获得快速修复


如果在package.json中,猫鼬的版本是这样的:
^5.x.y
,那么插入符号
^
将使其更新到最新的次要版本,即最高的
x
(如
5.9.y
,而不是
6.x.y
)。
因此,必须强制执行旧版本


更新:根据此答案:


必须删除任何控制器文件中的任何其他连接,只有主文件才能建立连接。

您是否导入并使用在多个位置显示的文件?不是很好,但想法不错。在应用程序启动时连接一次,而不是针对每个请求。我们不知道你在应用程序中如何使用此文件。你是否导入并使用在多个位置显示的文件?这不是很好的想法。在应用程序启动时连接一次,而不是针对每个请求。我们不知道您在应用程序中如何使用此文件。我没有更新package.json上的版本。我正在使用的mongoose版本是“mongoose”:“^5.3.14”,因此这应该不是版本问题,但谢谢anyway@RicardoParro我注意到了一些事情。插入符号
^
不表示它会将您更新到最新的次要版本吗?!即您已经在使用最新版本。尝试卸载并重新安装旧版本。(据我所知也是布尔值,默认为true)你是对的。非常感谢你把它修好了。事实上,这是一个更困难的,因为我使用膝关节炎服务,使用MangoSE和版本,预计最近的小,并打破了代码。令人惊叹的!ThanksI没有在package.json上更新我的版本。我正在使用的mongoose版本是“mongoose”:“^5.3.14”,因此这应该不是版本问题,但谢谢anyway@RicardoParro我注意到了一些事情。插入符号
^
不表示它会将您更新到最新的次要版本吗?!即您已经在使用最新版本。尝试卸载并重新安装旧版本。(据我所知也是布尔值,默认为true)你是对的。非常感谢你把它修好了。事实上,这是一个更困难的,因为我使用膝关节炎服务,使用MangoSE和版本,预计最近的小,并打破了代码。令人惊叹的!谢谢