【问题标题】:Mongoose error problems connecting to mongodbMongoose 连接到 mongodb 的错误问题
【发布时间】:2020-05-12 04:04:00
【问题描述】:

我正在尝试让 mongoDB 与 phpMyAdmin 数据库一起工作,但我收到一条错误消息,提示我无法锻炼。

我将是一个新手程序员,所以这可能是我在某处犯过的一个非常基本的错误。据我所知,我已经安装了所有正确的依赖项,并且当我在控制台上运行 nodemon 服务器时出现了所描述的错误。

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

require('dotenv').config();

//server for the SQL database
const port = process.env.PORT || 5000

app.use(bodyParser.json())
app.use(cors())
app.use(bodyParser.urlencoded({extended: false}))

var Users = require('./routes/user.routes')

app.use('/users', Users)

app.listen(port, () => {
    console.log("Server is running on port: " + port)
})

// server for MongoDB database

app.use(cors());
app.use(express.json());

const uri = process.env.ATLAS_URI;

//console.log(uri)

mongoose.createConnection(uri, { useNewUrlParser: true, useCreateIndex: true }
);
const connection = mongoose.createConnection();
connection.once('open', () => {
    console.log("MongoDB database connection established successfully");
})

const formsRouter = require('./routes/formDatabase.routes');
const adviceRouter = require('./routes/studentAdvice.routes');

app.use('/formDatabase.routes', formsRouter);
app.use('/studentAdvice.routes', adviceRouter);

app.listen(port, () => {
    console.log(`Server is running on port: ${port}`);
});

[nodemon] 由于更改而重新启动... [nodemon] 开始node server backend/server/server.js (节点:25800) MaxListenersExceededWarning:检测到可能的 EventEmitter 内存泄漏。 [Bus] 添加了 11 个退出侦听器。使用emitter.setMaxListeners() 增加限制

\softwaredevproject\cra-beacon\node_modules\mongoose\lib\connection.js:543 throw new MongooseError('openUri()uri 参数必须是' + ^ 错误 [MongooseError]:openUri()uri 参数必须是字符串,得到“未定义”。确保mongoose.connect()mongoose.createConnection( ) 的第一个参数是字符串。 在新的 MongooseError (\softwaredevproject\cra-beacon\node_modules\mongoose\lib\error\mongooseError.js:10:11) 在 NativeConnection.Connection.openUri (\softwaredevproject\cra-beacon\node_modules\mongoose\lib\connection.js:543:11) 在 Mongoose.createConnection (\softwaredevproject\cra-beacon\node_modules\mongoose\lib\index.js:278:17) 在对象。 (***\softwaredevproject\cra-beacon\backend\server\server.js:33:10) 在 Module._compile (internal/modules/cjs/loader.js:971:30) 在 Object.Module._extensions..js (internal/modules/cjs/loader.js:1011:10) 在 Module.load (internal/modules/cjs/loader.js:822:32) 在 Function.Module._load (internal/modules/cjs/loader.js:730:14) 在 Function.Module.runMain (internal/modules/cjs/loader.js:1051:12) 在内部/main/run_main_module.js:16:11 { 消息:'openUri()uri 参数必须是字符串,得到“未定义”。确保mongoose.connect()mongoose.createConnection() 的第一个参数是str ', 名称:'MongooseError' } [nodemon] 应用程序崩溃 - 启动前等待文件更改...

【问题讨论】:

    标签: node.js mongodb mongoose nodemon


    【解决方案1】:

    我认为是因为您的环境设置,最好猜测 ATLAS_URI 设置。

    ATLAS_URI=mongodb://localhost/NAME

    由于错误声称没有通过任何内容,也许您忘记将此设置添加到您的 .env 文件中?

    【讨论】:

    • 我的 .env 文件中唯一的一行是下面的一行。我应该还有什么吗? ATLAS_URI="mongodb+srv://JamesGeesus:*********@cluster0-mq74b.mongodb.net/test?retryWrites=true&w=majority"
    • @JimboGee 加上上面的设置就可以了
    猜你喜欢
    • 2021-03-17
    • 2016-04-16
    • 2019-03-06
    • 2017-06-29
    • 2011-09-13
    • 2017-12-18
    • 2020-08-31
    • 1970-01-01
    • 2018-07-10
    相关资源
    最近更新 更多