#javascript #mongodb
#язык JavaScript #mongodb
Вопрос:
Поэтому в моем приложении я могу подключиться к mongodb
const mongoose = require('mongoose'); const dotenv = require('dotenv'); const app = require('./app'); dotenv.config({ path: './config.env' }); const DB = process.env.DATABASE.replace( 'lt;PASSWORDgt;', process.env.DATABASE_PASSWORD ); mongoose // .connect(process.env.DATABASE_LOCAL, { .connect(DB, { useNewUrlParser: true, useCreateIndex: true, useFindAndModify: false, useUnifiedTopology: true, }) .then(() =gt; { console.log('DB connection successful!'); }); const tourSchema = new mongoose.Schema({ name: { type: String, required: [true, 'A tour must have a name'], unique: true, }, rating: { type: Number, default: 4.5, }, price: { type: Number, required: [true, 'A tour must have a price'], }, }); const Tour = mongoose.model('Tour', tourSchema); const testTour = new Tour({ name: 'Meteora tour', rating: 4.9, price: 189, }); testTour .save() .then((doc) =gt; { console.log(doc); }) .catch((err) =gt; { console.log('Error'); }); const port = process.env.PORT || 3000; app.listen(port, () =gt; { console.log(`App running on port ${port}...`); });
И, как вы видите в logcat, соединение выполнено успешно, и тестовый объект сохранен.
App running on port 8000... DB connection successful! { rating: 4.9, _id: 61a67242927cc71a57b2a49f, name: 'Meteora tour', price: 189, __v: 0 }
Вот мой файл env.
NODE_ENV=development PORT=8000 USERNAME=Theo DATABASE=mongodb srv://Theo:lt;PASSWORDgt;@cluster0.5k97r.mongodb.net/natours?retryWrites=trueamp;w=majority DATABASE_LOCAL=mongodb://localhost:27107/natours DATABASE_PASSWORD=...
Теперь я хочу попробовать что-то другое. Я хочу запустить mongodb из терминала. Поэтому я печатаю
mongo "mongodb srv://cluster0.5k97r.mongodb.net/natours" --username Theo
но я получаю это обратно
connecting to: mongodb://cluster0-shard-00-00.5k97r.mongodb.net:27017,cluster0- shard-00-01.5k97r.mongodb.net:27017,cluster0-shard-00-02.5k97r.mongodb.net:27017/natours?authSource=adminamp;compressors=disabledamp;gssapiServiceName=mongodbamp;replicaSet=atlas-axen7p-shard-0amp;ssl=true *** It looks like this is a MongoDB Atlas cluster. Please ensure that your IP whitelist allows connections from your network. Error: can't connect to new replica set master [cluster0-shard-00-02.5k97r.mongodb.net:27017], err: AuthenticationFailed: bad auth : Authentication failed. : connect@src/mongo/shell/mongo.js:362:17 @(connect):2:6 exception: connect failed exiting with code 1
Как это возможно? В моем приложении у меня нет проблем с подключением в MongoDB Atlas. Я внес свой IP-адрес в белый список.
Спасибо, Тео.