node.js - mongoose连接报错the server/replset/mongos options are deprecated

查看:549
本文介绍了node.js - mongoose连接报错the server/replset/mongos options are deprecated的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

我在使用mongoose连接数据库时报出警告。没能分析具体的原因。
使用async/await写法。

the server/replset/mongos options are deprecated, all their options are supported at the top level of the options object [poolSize,ssl,sslValidate,sslCA,sslCert,sslKey,sslPass,sslCRL,autoReconnect,noDelay,keepAlive,connectTimeoutMS,socketTimeoutMS,reconnectTries,reconnectInterval,ha,haInterval,replicaSet,secondaryAcceptableLatencyMS,acceptableLatencyMS,connectWithNoPrimary,authSource,w,wtimeout,j,forceServerObjectId,serializeFunctions,ignoreUndefined,raw,promoteLongs,bufferMaxEntries,readPreference,pkFactory,promiseLibrary,readConcern,maxStalenessSeconds,loggerLevel,logger,promoteValues,promoteBuffers,promoteLongs,domainsEnabled,keepAliveInitialDelay,checkServerIdentity,validateOptions

但是,数据库的读写一样成功。就是每一次都有上面的报错,恳请大家指点一下!
我觉得是连接mongodb的promise出现问题

const mongoose=require('mongoose');
mongoose.Promise = require('bluebird');
const config=require('../config.js');
const url=config.debug?config.loc_db_url:config.db_url;
const db=mongoose.connection;

db.on('error',()=>mongoose.disconnect());
db.on('disconnected',()=>mongoose.connect(url,{server:{auto_reconnect:true,poolSize:10},useMongoClient: true}));
mongoose.connect(url,{server:{auto_reconnect:true,poolSize:10},useMongoClient: true});

/* *
    引入模型对象
*/
require('./account-schema');
require('./baoxiu-schema');
require('./ludeng-schema');
require('./ludengtype-schema');
require('./shexiangtou-schema');

解决方案

这是新版本驱动API做了修改,旧的方式仍然可用,但是被标记为deprecated,也就是说在将来的版本中不再支持。错误消息提示得其实挺到位了,就是用于连接的选项

{
    server: {
        auto_reconnect: true,
        poolSize: 10
    },
    useMongoClient: true
}

现在全部被移到了顶层,也就是说

{
    auto_reconnect: true,
    poolSize: 10,
    useMongoClient: true
}

这个问题在mongoose的github上有很多人提到,可以看一下issue#5442,里面也有解答。

这篇关于node.js - mongoose连接报错the server/replset/mongos options are deprecated的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆