Я пытаюсь подключить базу данных mongodb этим кодом, но при запуске этого кода я получаю сообщение об ошибке (ошибка в нижней части кода). Одна из ошибок была в 7-й строке, где она была устранена путем добавления { useNewUrlParser: true } но все же в нем больше ошибок. Я использую версию MongoDB 4.0.1. Кто-нибудь знает, как решить эту ошибку.

const express = require('express');     
const mongoose = require('mongoose');  
const bodyParser = require('body-parser');   
const app = express();

app.use(express.static('public'));  
app.set('view engine','ejs');

mongoose.connect('mongod://localhost/students', { useNewUrlParser: true });  
var studentSchema = new mongoose.Schema({  
    name: String,  
    age:Number,  
    country:String  
});

var Student = mongoose.model("Student", studentSchema);  
var shashank = new Student({  
    name:"Shashank",  
    age:"21",  
    country:"India"  
});    

shashank.save((err,student) => {    
    if(err){     
        console.log('Something went wrong!');     
    }    
    else {      
        console.log("You added: " + student);      
    }      
});      

app.listen(3000,() => {     
    console.log('Server Listening!');     
});

Ошибка при запуске этого кода!

D:\HARDWORK\YelpCamp-Course>node app.js
Server Listening!
                                                                                               (node:14060) UnhandledPromiseRejectionWarning: MongoParseError: Invalid connection string
    at parseConnectionString (D:\HARDWORK\YelpCamp-Course\node_modules\mongodb-core\lib\uri_parser.js:216:21)
    at connect (D:\HARDWORK\YelpCamp-Course\node_modules\mongodb\lib\operations\mongo_client_ops.js:179:3)
    at connectOp (D:\HARDWORK\YelpCamp-Course\node_modules\mongodb\lib\operations\mongo_client_ops.js:283:3)
    at executeOperation (D:\HARDWORK\YelpCamp-Course\node_modules\mongodb\lib\utils.js:420:24)
    at MongoClient.connect (D:\HARDWORK\YelpCamp-Course\node_modules\mongodb\lib\mongo_client.js:168:10)
    at Promise (D:\HARDWORK\YelpCamp-Course\node_modules\mongoose\lib\connection.js:499:12)
    at new Promise (<anonymous>)
    at NativeConnection.Connection.openUri (D:\HARDWORK\YelpCamp-Course\node_modules\mongoose\lib\connection.js:496:19)
    at Mongoose.connect (D:\HARDWORK\YelpCamp-Course\node_modules\mongoose\lib\index.js:229:15)
    at Object.<anonymous> (D:\HARDWORK\YelpCamp-Course\app.js:9:10)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
(node:14060) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 3)                                                                                                                (node:14060) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
2
user10250872 20 Авг 2018 в 19:23

4 ответа

Лучший ответ
mongoose.connect('mongod://localhost/students', { useNewUrlParser: true }); 

Он должен начинаться с mongodb: // ..., и когда вы используете { useNewUrlParser: true }, вы всегда должны указывать номер порта в строке подключения ссылка на мангуста, как указано ниже.

mongoose.connect('mongodb://localhost:27017/students', { useNewUrlParser: true });

Здесь номер порта 27017 - порт по умолчанию для базы данных MongoDB.

10
Pavan Vora 20 Авг 2018 в 16:51

Используйте эти два набора, прежде чем подключаться к мангусте более чистой и стабильной для версии 5.7

mongoose.set('useNewUrlParser', true);
mongoose.set('useUnifiedTopology', true);
0
Andreas Notanto 17 Ноя 2019 в 16:14

Я столкнулся с той же проблемой, я только запустил монго в терминале по команде

1) сервис sudo mongod start 2) монго

Работал на меня.

-1
Priyanka 8 Авг 2019 в 11:09

Хост, который вы пишете, неверен, и так и должно быть. м

mongoose.connect('mongodb://localhost:27017/students', { useNewUrlParser: true });
0
Ahmad Sharif 5 Окт 2019 в 09:19
51934902