Я новичок в разработке MEAN, я разрабатываю простое приложение, и в качестве первого шага я пытаюсь подключиться к своему mongodb, поэтому я установил node, express, morgan, mongodb, mongoose.
Итак, вот мой код в index.js:
const express = require('express');
const morgan = require('morgan');
const app = express();
const { MongoClient } = require('./database');
// Settings
app.set('port', process.env.PORT || 3000);
// Middlewares
app.use(morgan('dev'));
app.use(express.json());
// Routes
// Starting the server
app.listen(app.get('port'), () => {
console.log('server on port', app.get('port'));
});
, а затем код в моей базе данных.js:
const MongoClient = require('mongodb').MongoClient;
const uri = "mongodb+srv://duke:<password>@cluster0-dreyi.mongodb.net/test?retryWrites=true&w=majority";
const client = new MongoClient(uri, { useNewUrlParser: true });
client.connect(err => {
const collection = client.db("test").collection("devices");
console.log("horrorrrrrr");
// perform actions on the collection object
client.close();
});
module.exports = MongoClient;
Я также пробую этот код настраница mongodb для подключения к приложению:
const MongoClient = require('mongodb').MongoClient;
const uri = "mongodb+srv://duke:<password>@cluster0-dreyi.mongodb.net/test?retryWrites=true&w=majority";
const client = new MongoClient(uri, { useNewUrlParser: true });
client.connect(err => {
const collection = client.db("test").collection("devices");
// perform actions on the collection object
client.close();
});
Конечно, я меняю пароль на реальный. Пожалуйста, оставьте меня в моем сегодняшнем состоянии, это мой первый раз, когда я касаюсь mongodb, а также полный стек MEAN, и я провел слишком много часов в этом соединении.
Вот ошибка, которую я получаю:
(узел: 5284) DeprecationWarning: текущий механизм обнаружения и мониторинга сервера устарел и будет удален в следующей версии. Чтобы использовать новый механизм обнаружения и мониторинга сервера, передайте опцию {useUnifiedTopology: true} конструктору MongoClient.
EDIT
@ iLiA спасибо за ваш ответ! Я попробовал ваш код и не работает, я покажу вам, как я сделал с реальным паролем:
const url = 'mongodb+srv://duke:password@cluster0-dreyi.mongodb.net/test?retryWrites=true&w=majority';
const mongoose = require('mongoose');
mongoose.connect(url, {
useNewUrlParser: true,
useCreateIndex: true,
useUnifiedTopology: true,
useFindAndModify: false
})
.then(()=>{
console.log('congrats, problem solved')
})
.catch((err)=>{
console.log(`there is not a problem with ${err.message}`);
process.exit(-1)
})
module.exports = mongoose;
и ошибка: нет проблемы с тайм-аутом выбора сервера после 30000 мсПриложение [nodemon] упало - ожидание изменений файла перед запуском ...
С уважением,