繁体   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