无法连接到MongoDB Atlas,尽管允许所有IP地址访问



由于某种原因,我无法访问MongoDB数据库。我已经浏览了一些常见的疑点,比如删除<>在密码周围加上括号,还可以从任何IP地址访问我的集群。我试图连接到mongoDB 'sample_mflix'提供的样本数据库之一,我不确定这是否是一个问题。在教程中,我指的是https://www.youtube.com/watch?v=n1mdAPFq2Os&t=887s创造者离开数据库作为"测试",它的工作原理,但我尝试了这个,也失败了。如有任何帮助,不胜感激。

const { ApolloServer } = require('apollo-server');
const gql = require('graphql-tag');
const mongoose = require ('mongoose');
const { MONGODB } = require('./config.js');
const typeDefs = gql`
type Query{
sayHi: String!
}
`;
//each query has resolver
const resolvers = {
Query: {
sayHi: () => 'Hello World!!!'
}   
};
const server = new ApolloServer({
typeDefs,
resolvers
});
mongoose.connect('mongodb+srv://MYUSERNAME:MYPASSWORD@cluster0.j2bnm.mongodb.net/**sSAMPLEDATABASEgivenbyMongoDB**?retryWrites=true&w=majority', {useNewUrlParser: true})
.then(() => {
console.log('MongoDB connected');
return server.listen({ port: 5000 });
})
.then(res => {
console.log(`Server running at ${res.url}`);
});

如果您的密码包含非字母数字字符,如@,#,&您需要确保您通过encodeURIComponent传递密码,否则mongodb可能会将密码误解为密码,从而拒绝它。

MYUSERNAME:encodeURIComponent(MYPASSWORD)

我不知道发生了什么,但我什么也没做,突然它工作了

最新更新