[英]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
但终端没有响应,数据库中也没有发生
我的兄弟。
我遇到了同样的问题,当我的搜索将我引向您的问题时,当我没有看到答案时,我更加难过,但是在四处寻找之后,我找到了答案!
确保将“dbuser:dbpassword”占位符替换为实际数据,例如 mongo url 上的“Elias:js44889”。
还要确保它也与 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 文件中,然后:
npm install async --save
node populatedb <your mongodb url>
遵循 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.