Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/40.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 猫鼬;不支持选项[端口]”;_Node.js_Mongodb_Express_Mongoose - Fatal编程技术网

Node.js 猫鼬;不支持选项[端口]”;

Node.js 猫鼬;不支持选项[端口]”;,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,有人知道为什么我在使用mongoose的时候总是在控制台日志中看到这个吗 不支持选项[port] 快速上下文: 在本地运行mongod 在本地运行node/express应用程序 “猫鼬”:“^5.6.11” mongodb v4.0.10 下面的代码片段: “('../config/mongo profile.json')”我不是Mongoose专家,但根据文档,port不是一个有效的选项: Mongoose使用Node.js MongoDB驱动程序。这是你的工作清单 根据Mongoose

有人知道为什么我在使用mongoose的时候总是在控制台日志中看到这个吗

不支持选项[port]

快速上下文:

  • 在本地运行
    mongod
  • 在本地运行node/express应用程序
  • “猫鼬”:“^5.6.11”
  • mongodb v4.0.10
  • 下面的代码片段:

“('../config/mongo profile.json')”我不是Mongoose专家,但根据文档,
port
不是一个有效的选项:

Mongoose使用Node.js MongoDB驱动程序。这是你的工作清单

根据Mongoose docs,正确的连接方式是使用,即:

mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[database][?options]]
您可以在Mongoose的文档中看到一些示例

据我所知,您可以将您的
mongo profile.json
更改为:

{
    "url": "mongodb://localhost",
    "port": 27017,
    "user": "rpTest",
    "dbName":"rp-db-perf-test",
    "pass":"...",
    "connectionOptions": {
      "useNewUrlParser": true,
      "keepAlive": true,
      "keepAliveInitialDelay": 0
    }
}
以及您的连接代码:

const mongoProfile = require('../config/mongo-profile.json');
var url = mongoProfile.url;
var port = mongoProfile.port;
var dbName = mongoProfile.dbName;
var user = mongoProfile.user;
var pass = mongoProfile.pass;

let mongooseConnPromise = mongoose.connect(
    'mongodb://' + user + ':' + pass + '@' + url + ':' + port + '/' + dbName, 
    mongoProfile.connectionOptions
);
let dbConn = mongoose.connection;
dbConn.on('error', console.error.bind(console, 'connection error:'));

根据文档,即使您使用的是最旧版本的mongoose(3.8),也不能指定这样的端口。根据文档,唯一的方法是在连接字符串中传递它,如下所示:

mongoose.connect('mongodb://host:port');
但是,由于您使用的是带有默认端口的localhost,因此您甚至不需要在其中指定端口:

mongoose.connect('mongodb://host');
因此,只要从配置文件中删除该参数,就可以开始了

mongoose.connect('mongodb://host');