Сегодня я хотел использовать кластеры в MongoDB Atlas для получения онлайн-базы данных вместо локальной базы данных MongoDB (которая работала отлично),
Итак, я следовал руководству по mlab,
Отлично работает при записи в базу данных (когда я авторизируюсь на своем веб-сайте, он добавляет данные в базу данных, когда я пишу сообщение в чате, он добавляет сообщение и т. Д ...)
Но когда я хочу прочитать эти данные, я получаю:
MongoTimeoutError: Server selection timed out after 30000 ms
MongoError: Authentication failed
Соединение в моем сервере / index.js, кажется, работает, потому что я получил консольный журнал:
mongoose
.connect(
`mongodb+srv://${process.env.USER}:${process.env.PASSWORD}@ofilms-demo-f9iwz.mongodb.net/test?retryWrites=true&w=majority`,
{ useNewUrlParser: true, useUnifiedTopology: true }
).then(() =>
console.log(
"working"
)
)
.catch(err => console.log(err));
но не другие маршруты, такие как этот (который получает всех пользователей в базе данных):
const mongo = require("mongodb").MongoClient;
router.get("/getAll", function(req, res) {
console.log("get all users");
const client = new mongo(`mongodb+srv://${process.env.USER}:${process.env.PASSWORD}@ofilms-demo-f9iwz.mongodb.net/test?retryWrites=true&w=majority`, {
useNewUrlParser: true,
useUnifiedTopology: true
});
client.connect(err => {
const collection = client.db("test").collection("users");
collection.find().toArray((err, items) => {
res.json(items);
});
client.close();
});
});
Одна модель от Mongoose:
/* eslint-disable no-undef */
const mongoose = require("mongoose");
const Schema = mongoose.Schema;
const UserSchema = new Schema({
username: {
type: String,
required: true
},
email: {
type: String,
required: true,
lowercase: true
},
password: {
type: String,
required: true
},
firstname: String,
lastname: String,
sexe: String,
mobilePhone: String,
departement: Number,
city: String,
moviesLiked: Array,
seriesLiked: Array,
moviesDisliked: Array,
seriesDisliked: Array,
moviesFavorites: Array,
seriesFavorites: Array,
lists: Array,
creationDate: {
type: Date,
default: Date.now
},
lastConnection: Date,
isVerified: Boolean,
isAdmin: Boolean,
isModerator: Boolean,
isConnected: Boolean
});
module.exports = User = mongoose.model("users", UserSchema);
Я могу показать вамкод других файлов, если необходимо, или дать вам ссылку на репозиторий, если кто-то хочет, но это действительно большой проект,
Спасибо,