我正在尝试使用mongoose向mongodb验证我的connect语句。我有
//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
docs:https://docs.mongodb.com/manual/tutorial/enable-authentication/
,但它也不以这种方式工作。当我访问MEAN堆栈应用程序上的某个页面,该页面调用NodeJS后端以从F12(chrome开发人员工具)中的MongoDB获取数据时,它显示该调用的状态为(失败),并显示“无法加载响应数据” 。我正在使用的服务器具有Ubuntu 18.04。
我希望看到app.js能够与我在mongoDB中创建的用户(已为我选择该用户的数据库)成功连接到mongoDB。意思是我禁用了安全性(在上面几行中有注释),创建了一个用户,并为创建的用户赋予了readWrite特权,并绑定到我想要的数据库,然后根据文档在mongo.conf文件中重新启用了安全性。
此外,我想知道如何使用PM2(npm install pm2)并始终运行我的后端nodeJS代码,以便Node将始终运行我的app.js,以便API调用将成功。
答案 0 :(得分:0)
取消注释bindIp并将其设置为127.0.0.1
bindIp = 127.0.0.1
security:
authentication: enabled
这将解决您的问题