为什么我"MongoParseError URI malformed, cannot be parsed"收到此错误?


const mongoose = require('mongoose');
const dotenv = require('dotenv');
process.on('uncaughtException', err => {
console.log('UNCAUGHT EXCEPTION! 💥 Shutting down...');
console.log(err.name, err.message);
process.exit(1);
});
dotenv.config({ path: './.env' });
const app = require('./app');
const DB = process.env.DATABASE.replace(
'<PASSWORD>',
process.env.DATABASE_PASSWORD
);
console.log(DB);
mongoose
.connect(DB, {
useNewUrlParser: true,
useCreateIndex: true,
useFindAndModify: false
})
.then(() => console.log('DB connection successful!'));
const port = process.env.PORT || 3000;
const server = app.listen(port, () => {
console.log(`App running on port ${port}...`);
});
process.on('unhandledRejection', err => {
console.log('UNHANDLED REJECTION! 💥 Shutting down...');
console.log(err.name, err.message);
server.close(() => {
process.exit(1);
});
});

这是我的代码,我想连接MongoDB服务器。

NODE_ENV=development
PORT=3000
DATABASE=mongodb+srv://muhosman:<PASSWORD>@cluster0.0kuwazr.mongodb.net/natours?retryWrites=true&w=majority
DATABASE_LOCAL=mongodb://localhost:27017/natours
DATABASE_PASSWORD=xxx
JWT_SECRET=my-ultra-secure-and-ultra-long-secret
JWT_EXPIRES_IN=90d
JWT_COOKIE_EXPIRES_IN=90
EMAIL_USERNAME=xxx
EMAIL_PASSWORD=xxx
EMAIL_HOST=smtp.mailtrap.io
EMAIL_PORT=25

这是我的'。env的文件。

我正在使用vs code。当我想连接我的mongoDB,我得到这个错误。我搜索了这个错误,但其他帖子没有帮助我。你能帮我吗?

您的replace函数看起来错误(阅读这里的函数文档)

const DB = process.env.DATABASE.replace(
/(<PASSWORD>)/,
process.env.DATABASE_PASSWORD
);

不是

const DB = process.env.DATABASE.replace(
'<PASSWORD>',
process.env.DATABASE_PASSWORD
);

相关内容

最新更新