MongoDB认证在Bitnami MEAN堆栈映像中无法找到用户名

3

我正在尝试在Amazon EC2实例上运行一个web应用程序(MEAN),但遇到以下问题。有人能帮我解决吗?

node app.js The Server has started on 9091
/opt/bitnami/apps/YelpCamp/node_modules/mongodb-core/lib/auth/scram.js:128
    username = username.replace('=', "=3D").replace(',', '=2C');
                        ^

TypeError: Cannot read property 'replace' of undefined
    at executeScram (/opt/bitnami/apps/SomeApp/node_modules/mongodb-core/lib/auth/scram.js:128:24)
    at /opt/bitnami/apps/SomeApp/node_modules/mongodb-core/lib/auth/scram.js:277:7
    at _combinedTickCallback (internal/process/next_tick.js:73:7)
    at process._tickCallback (internal/process/next_tick.js:104:9)

我也遇到了同样的问题。你找到答案了吗? - Sparw
1个回答

4

Mongoose可以通过以下两种方式进行认证:

1、连接字符串: mongoose.connect('mongodb://username:password@host:port(通常是27017)/db') 其中,username和password分别是特定数据库的用户名和密码,host是您的数据库所在的主机(如localhost或某个域名/IP),port是Mongo监听的端口号,db是您要连接的数据库的名称。

2、使用选项。从文档中得知: var options = { useMongoClinet: true, auth: {authdb: 'admin'}, user: 'myUsername', pass: 'myPassword', } mongoose.connect(uri, options);

我曾经尝试第一种方法,但却遇到了“username未定义”的错误,但在第二种方法中我取得了成功。

[参考资料] https://github.com/Automattic/mongoose/issues/4891


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接