Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Ошибка «URI malformed, cannot be parsed» на старом проекте. Как пофиксить? (https://javascript.ru/forum/node-js-io-js/84707-oshibka-uri-malformed-cannot-parsed-na-starom-proekte-kak-pofiksit.html)

CryNet 23.11.2022 12:29

Ошибка «URI malformed, cannot be parsed» на старом проекте. Как пофиксить?
 
Есть относительно старый проект. Обновил зависимости, подключил новую базу с теми же кредами, в итоге вижу ошибку:

MongoParseError: URI malformed, cannot be parsed
    at parseConnectionString (/run/media/crynet/data/web/www/Node/crynet.tech/server/node_modules/mongodb/lib/core/uri_parser.js:580:21)
    at QueryReqWrap.callback (/run/media/crynet/data/web/www/Node/crynet.tech/server/node_modules/mongodb/lib/core/uri_parser.js:127:7)
    at QueryReqWrap.onresolve [as oncomplete] (node:internal/dns/callback_resolver:49:10)


Коннект к базе:
import 'dotenv/config'
...
async function startApp() {
  try {
    await mongoose.connect(process.env.DB as string, {
      useFindAndModify: false,
      useNewUrlParser: true,
      useUnifiedTopology: true
    })
    app.listen(process.env.PORT, () => console.log('SERVER WORKS ON PORT ' + process.env.PORT))
  } catch (e) {
    console.log(e)
  }
}


Пробовал без dotenv. Ошибка та же.
Есть идеи как фиксить?

Nexus 23.11.2022 16:19

Первым аргументом идет адрес БД, а вы туда её название передаете.
https://mongoosejs.com/docs/connections.html

CryNet 25.11.2022 17:52

Цитата:

Сообщение от Nexus (Сообщение 549109)
Первым аргументом идет адрес БД, а вы туда её название передаете.
https://mongoosejs.com/docs/connections.html

Так я просто скопировал то, что мне выдал сам Mongo в интеграции :(

CryNet 25.11.2022 17:54

Цитата:

Сообщение от Nexus (Сообщение 549109)
Первым аргументом идет адрес БД, а вы туда её название передаете.
https://mongoosejs.com/docs/connections.html

ENV выглядит так:

DB=mongodb+srv://admin:admin@cluster0.server.mongodb.net/blog?retryWrites=true&w=majority
PORT=5000

Nexus 25.11.2022 18:00

CryNet, вы смотрели, что у вас в «process.env.DB»?
Попробуйте обернуть адрес вашей БД в .env в кавычки:
Код:

DB="mongodb+srv://admin:admin@cluster0.server.mongodb.net/blog?retryWrites=true&w=majority"
PORT=5000


CryNet 25.11.2022 18:22

Цитата:

Сообщение от Nexus (Сообщение 549147)
CryNet, вы смотрели, что у вас в «process.env.DB»?
Попробуйте обернуть адрес вашей БД в .env в кавычки:
Код:

DB="mongodb+srv://admin:admin@cluster0.server.mongodb.net/blog?retryWrites=true&w=majority"
PORT=5000


Ничего не изменилось. Та я пробовал избавляться от ENV файла полностью, т.к. думал, что проблема в либе dotenv.

CryNet 27.11.2022 16:54

Цитата:

Сообщение от Nexus (Сообщение 549147)
CryNet, вы смотрели, что у вас в «process.env.DB»?
Попробуйте обернуть адрес вашей БД в .env в кавычки:
Код:

DB="mongodb+srv://admin:admin@cluster0.server.mongodb.net/blog?retryWrites=true&w=majority"
PORT=5000


Пофиксил. Бага была в том, что обновился Монгус, а новая версия уже не поддерживает параметры, которые были у меня указанны.


Часовой пояс GMT +3, время: 07:00.