我正在学习来自https://developer.mozilla.org/en-US/docs/Learn/Server-side/Express_Nodejs/mongoose
的ExpressJs教程现在我已经为mongodb数据库创建了模块,然后在根目录中创建了一个文件populatedb.js。现在我尝试使用命令连接到数据库(如上面链接中描述的那样)
node populatedb mongodb://dbuser:dbpassword@ds133814.mlab.com:33814/local_library_tutorial
但终端响应没有,数据库中没有发生
答案 0 :(得分:2)
我的兄弟。
我遇到了同样的问题,当我的搜索引导我回答你的问题时,当我看不到任何答案时,我更加难过,但是在搜索之后,我找到了答案!
确保替换" dbuser:dbpassword"具有实际数据的占位符,例如" Elias:js44889"在你的mongo网址上。
另外,请确保它与app.js中的相同。
我认为一切都应该没事,就像我一样。
答案 1 :(得分:1)
您必须在populatedb.js 中包含脚本才能完成工作。
populatedb.js 脚本链接:https://raw.githubusercontent.com/hamishwillee/express-locallibrary-tutorial/master/populatedb.js
在上面链接的populatedb.js文件中插入脚本后,然后运行以下命令在mongoDB中填充数据。
npm install async
(如果没有安装异步模块)
node populatedb <your mongodb url>
答案 2 :(得分:1)
如果您在所有模型中使用相同的集合名称,有时您可能会遇到错误,这发生在我身上,直到我意识到我做错了。
例如不要这样做
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)
答案 3 :(得分:0)
我也遇到了同样的问题,因为我正在做相同的教程。我为解决这个问题所做的是转到他们在&#34;测试的第一步中提供的populatedb.js链接 - 创建一些项目&#34;或者你可以下载它。点击链接后,他们会提供您可以粘贴到您在项目根目录中创建的populatedb.js文件的测试数据:
npm install async --save
node populatedb <your mongodb url>
答案 4 :(得分:0)
遵循MDN教程,这是我修复的问题:
用户名:Jeff;密码: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
答案 5 :(得分:0)
在此发布,因为此答案是我发现该问题的结果。
有同样的问题,错误最终是我在数据库上为管理员设置的密码-编码了特殊字符(显示了警告,我显然忽略了该警告),这导致我无法连接。
答案 6 :(得分:0)
由于错误,我遇到了这个问题几天
zsh: no matches found: <my mongodb url>
首先,我仔细检查了我是否按照教程中的 Testing — create some items 中的说明进行操作。 然后我在终端改了我原来的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 中的链接。
希望这可以为某人节省一些时间!