Node.js 猫鼬;不支持选项[端口]”;
有人知道为什么我在使用mongoose的时候总是在控制台日志中看到这个吗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
不支持选项[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');