簡體   English   中英

節點填充 b url 不起作用

[英]node populatedb url not working

我正在從https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/mongoose學習 ExpressJs 教程

現在我已經為 mongodb 數據庫創建了模塊,然后在根目錄中創建了一個文件填充 b.js。 現在我正在嘗試使用命令連接到數據庫(最后在上面的鏈接中描述)

node populatedb mongodb://dbuser:dbpassword@ds133814.mlab.com:33814/local_library_tutorial

但終端沒有響應,數據庫中也沒有發生

我的兄弟。

我遇到了同樣的問題,當我的搜索將我引向您的問題時,當我沒有看到答案時,我更加難過,但是在四處尋找之后,我找到了答案!

  1. 確保將“dbuser:dbpassword”占位符替換為實際數據,例如 mongo url 上的“Elias:js44889”。

  2. 還要確保它也與 app.js 中的相同。

我認為一切都應該很好,就像對我一樣。

您必須在populatedb.js 中包含腳本才能完成工作。

populatedb.js 腳本鏈接: https : //raw.githubusercontent.com/hamishwillee/express-locallibrary-tutorial/master/populatedb.js

從上面的鏈接將腳本插入到populatedb.js 文件中后,然后運行以下命令在mongoDB 中填充數據。

npm install async (如果沒有安裝 async 模塊)

node populatedb <your mongodb url>

有時,如果您在所有模型中使用相同的集合名稱,可能會出現錯誤,這發生在我身上,直到我意識到我所做的是錯誤的。

例如不要這樣做

const authorModel = mongoose.model('author', AuthorSchema)
const bookModel = mongoose.model('author', BookSchema)

如果你意外地這樣做,它會拋出這個錯誤
OverwriteModelError: Cannot overwrite author model once compiled.

而是在“Windows 用戶”的命令行中寫入

node populatedb mongodb+srv://username:password@yourcluster.mongodb.net/yourdatabase

並在您的模型中確保集合不同

const authorModel = mongoose.model('author', AuthorSchema)
const bookModel = mongoose.model('book', BookSchema)

我在做同樣的教程時也遇到了同樣的問題。 我為解決此問題所做的工作是轉到他們在“測試 - 創建一些項目”的第一步中提供的 poppedb.js 鏈接,或者您可以下載它。 單擊鏈接后,他們會提供測試數據,您可以將這些數據粘貼到您在項目根目錄中創建的 poppedb.js 文件中,然后:

  1. npm install async --save
  2. node populatedb <your mongodb url>
  3. 腳本應該會運行,您應該會在創建結果或項目時看到它們。

遵循 MDN 教程,這是我修復的內容:

用戶名:傑夫; 密碼:12345

app.js,改為:

var mongoDB = 'mongodb://Jeff:123@ds149732.mlab.com:49732/local_library';

命令行提示符,更改為:

node populatedb mongodb://Jeff:12345@ds149732.mlab.com:49732/local_library

在這里發帖是因為這個答案是我在谷歌上搜索問題的結果。

有同樣的問題,錯誤最終是我在數據庫上為管理員設置的密碼 - 特殊字符被編碼(有一個警告顯示,我顯然忽略了)導致我無法連接。

我遇到這個問題幾天了

zsh: no matches found: <my mongodb url>

首先,我仔細檢查了我是否遵循了測試中的說明——在教程中創建了一些項目 然后我在終端中更改了我原來的 mongodb URL,刪除了結尾。

我原來的 mongoURL =

mongodb+srv://username:password@cluster0.9f24o.mongodb.net/myFirstDatabase?retryWrites=true&w=majority

我的新 mongoURL =

mongodb+srv://username:password@cluster0.9f24o.mongodb.net/myFirstDatabase

我在 express-locallibrary 教程文件夾中運行了這個腳本。

node populatedb mongodb+srv://username:password@cluster0.9f24o.mongodb.net/myFirstDatabase

我現在不確定這是否意味着我還需要更改 app.js 中的鏈接。

希望這可以節省一些時間!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM