mongoose 节点已填充数据库url不工作

6vl6ewon  于 2023-03-23  发布在  Go
关注(0)|答案(8)|浏览(167)

我在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

但终端没有响应,数据库中没有发生

67up9zun

67up9zun1#

我哥哥。
我遇到了同样的问题,当我的搜索引导我到你的问题时,我更伤心,当我没有看到答案时,然而,在搜索之后,我找到了答案!
1.确保在你的mongo url上用实际数据替换“dbuser:dbpassword”占位符,例如“Elias:js 44889”。
1.另外,请确保它与app.js中的相同。
我想一切都应该很好,因为它是为我。

twh00eeo

twh00eeo2#

你必须在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>

cngwdvgl

cngwdvgl3#

我有这个问题了几天的错误

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 tutorial文件夹中运行了这个脚本。

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

我不确定这是否意味着我也需要更改app.js中的链接。
希望这能为某人节省一些时间!

brjng4g3

brjng4g34#

有时你可能会得到一个错误,如果你在所有的模型中使用相同的集合名称,这发生在我身上,直到我意识到我所做的是错误的。
比如不要这样做

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)
ua4mk5z4

ua4mk5z45#

我也遇到了同样的问题,因为我在做同样的教程。我所做的解决这个问题的方法是去他们在“测试-创建一些项目”的第一步中提供的populatedb.js链接,或者你可以下载它。一旦我点击链接,他们提供的测试数据,你可以粘贴到你在项目根目录中创建的populatedb.js文件中,然后:

  1. npm install async --save
  2. node populatedb <your mongodb url>
    1.脚本应该运行,并且您应该看到它创建的结果或项目。
qv7cva1a

qv7cva1a6#

遵循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
4szc88ey

4szc88ey7#

张贴在这里,因为这个答案是我发现谷歌搜索问题的结果。
有同样的问题,错误最终是密码,我已经设置的管理员对数据库-特殊字符编码(有一个警告显示,我显然忽略了),这导致我无法连接。

gpnt7bae

gpnt7bae8#

我刚刚试过了,你需要在你的连接uri周围加上单引号:

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

相关问题