3 回答

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個贊
檢查您的mongo版本
mongo --version
如果您使用的版本> = 3.1.0,請將mongo連接文件更改為->
MongoClient.connect("mongodb://localhost:27017/YourDB", { useNewUrlParser: true })
或您的貓鼬連接文件--
mongoose.connect("mongodb://localhost:27017/YourDB", { useNewUrlParser: true });
理想情況下,它是第4版功能,但v3.1.0及更高版本也支持它。 有關(guān)詳細(xì)信息,請查看MongoDB Github。

TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個贊
如前所述3.1.0-beta4,從外觀上看,驅(qū)動程序的發(fā)布“早已被釋放”。該版本是正在進(jìn)行的工作的一部分,以支持MongoDB 4.0即將發(fā)布的版本中的較新功能并進(jìn)行其他一些API更改。
useNewUrlParser由于圍繞連接URI實(shí)際工作方式的一些更改,該選項(xiàng)之一就是觸發(fā)當(dāng)前警告。以后再說。
在問題“解決”之前,建議至少將其“固定”在次要版本上以進(jìn)行3.0.x發(fā)布:
"dependencies": {
"mongodb": "~3.0.8"
}
這應(yīng)該停止3.1.x在“新”安裝中將分支安裝到節(jié)點(diǎn)模塊。如果您已經(jīng)安裝了“ beta”版本的“最新”版本,則應(yīng)清理軟件包(和package-lock.json),并確保將其降級為3.0.x系列版本。
至于實(shí)際使用“新”連接URI選項(xiàng),主要限制是實(shí)際port在連接字符串上包括:
const { MongoClient } = require("mongodb");
const uri = 'mongodb://localhost:27017'; // mongodb://localhost - will fail
(async function() {
try {
const client = await MongoClient.connect(uri,{ useNewUrlParser: true });
// ... anything
client.close();
} catch(e) {
console.error(e)
}
})()
在新代碼中,這是一個更“嚴(yán)格”的規(guī)則。要點(diǎn)在于,當(dāng)前代碼本質(zhì)上是“ node-native-driver”(npm mongodb)存儲庫代碼的一部分,而“ new code”實(shí)際上是從mongodb-core庫中導(dǎo)入的,從而“鞏固”了“ public”節(jié)點(diǎn)驅(qū)動程序。
添加“選項(xiàng)”的目的是通過將選項(xiàng)添加到新代碼中來“簡化”過渡,以便在添加選項(xiàng)的代碼中使用較新的解析器(實(shí)際上基于url),并清除棄用警告,從而驗(yàn)證您傳入的連接字符串實(shí)際上符合新解析器的預(yù)期。
在將來的版本中,將刪除“舊版”解析器,然后即使沒有該選項(xiàng),也將使用新的解析器。但是到那時,可以預(yù)期所有現(xiàn)有代碼都有足夠的機(jī)會根據(jù)新解析器的預(yù)期測試其現(xiàn)有連接字符串。
因此,如果您要在發(fā)布新的驅(qū)動程序功能時開始使用它們,請使用可用的beta版本和后續(xù)版本,并且最好通過啟用中的useNewUrlParser選項(xiàng)來確保您提供的連接字符串對于新的解析器有效MongoClient.connect()。
如果您實(shí)際上不需要訪問與MongoDB 4.0發(fā)行版預(yù)覽有關(guān)的功能,請將該版本固定到3.0.x前面提到的系列。這將按文檔所述進(jìn)行,并且“固定”這可確保3.1.x在您實(shí)際要安裝穩(wěn)定的版本之前,不會在預(yù)期的依賴項(xiàng)上“更新”發(fā)行版。

TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個贊
沒什么改變,只通過連接功能{useNewUrlParser: true }就可以了
MongoClient.connect(url,{ useNewUrlParser: true },function(err,db){
if(err){
console.log(err);
}
else {
console.log('connected to '+ url);
db.close();
}
})
- 3 回答
- 0 關(guān)注
- 8592 瀏覽
添加回答
舉報