我正在尝试使用mongoose验证我的connect语句到mongodb。我有过
//In app.js
mongoose.connect('mongodb://localhost:27017/databasenamehere', {
useNewUrlParser: true,
useUnifiedTopology: true,
user: 'username',
pass: 'password'
});
将/etc/mongo.conf文件设置为
...
#bindIP //commented this out
...
security:
authentication: enabled
...
并尝试将其放入.connect字符串中,如下所示
//In app.js
mongoose.connect('mongodb://username:password@localhost:27017/databasenamehere', {
useNewUrlParser: true,
useUnifiedTopology: true
});
根据文档也进行了尝试:
mongod --auth --port 27017 --dbpath /var/lib/mongodb
//and
mongod --auth --port 27017 --dbpath /var/lib/mongodb
文档:https://docs.mongodb.com/manual/tutorial/enable-authentication/
但它也不是这样工作的。当我访问我的均值堆栈应用程序的页面时,它调用NodeJS后端从F12 (chrome开发人员工具)中的MongoDB获取数据,它显示调用的状态为(failed),并显示'Failed to load response data‘。我使用的服务器是Ubuntu 18.04。
我希望看到app.js将使用我在mongoDB中为我选择的数据库创建的用户成功连接到mongoDB。这意味着我禁用了安全性(上面的几行注释掉了),创建了一个用户,并将readWrite权限授予创建的用户并绑定到我想要的数据库,然后根据文档在mongo.conf文件中重新打开了安全性。
此外,我想知道如何使用PM2 (npm install pm2),并让我的后端nodeJS代码始终运行,以便节点将始终运行我的app.js,从而使API调用将成功。
发布于 2019-10-02 06:52:32
取消注释bindIp并将其设置为127.0.0.1
bindIp = 127.0.0.1
security:
authentication: enabled
这会解决你的问题
https://stackoverflow.com/questions/58196200
复制相似问题