`mongoose.connect()` 引发错误:第一个参数应该是字符串,已接收
Posted
技术标签:
【中文标题】`mongoose.connect()` 引发错误:第一个参数应该是字符串,已接收【英文标题】:`mongoose.connect()` fires error: first argument should be String, received 【发布时间】:2021-09-13 10:17:27 【问题描述】:throw new MongooseError('
uri
参数必须是openUri()
一个'+ ^MongooseError:
openUri()
的uri
参数必须是字符串, 得到“未定义”。使 surmongoose.connect()
或mongoose.createConnection()
的第一个参数是一个字符串。 在 NativeConnection.Connection.openUri (C:\Users\niko\Desktop\opaa\node_modules\mongoose\nnection.js:694:11) 在 _mongoose._promiseOrCallback.cb (C:\Users\niko\Desktop\opaa\node_modules\mongoose\lib\js:351:10) 在 promiseOrCallback (C:\Users\niko\Desktop\opaa\node_modules\mongoose\lib\helpers\promislback.js:10:12) 在 Mongoose._promiseOrCallback (C:\Users\niko\Desktop\opaa\node_modules\mongoose\lib\inde at 猫鼬连接 (C:\Users\niko\Desktop\opaa\node_modules\mongoose\lib\index.js:350:20) 在对象。 (C:\Users\niko\Desktop\opaa\app.js:9:10) 在 Module._compile (internal/modules/cjs/loader.js:778:30) 在 Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10) 在 Module.load (internal/modules/cjs/loader.js:653:32) 在 tryModuleLoad (internal/modules/cjs/loader.js:593:12) 在 Function.Module._load (internal/modules/cjs/loader.js:585:3) 在 Function.Module.runMain (internal/modules/cjs/loader.js:831:12) 启动时(内部/bootstrap/node.js:283:19) 在 bootstrapNodeJSCore (internal/bootstrap/node.js:622:3)
const response = require('express');
const express = require('express');
const path = require('path');
const dotenv = require('dotenv')
const mongoose = require('mongoose');
dotenv.config();
mongoose.connect( process.env.DB_CONNECT, useNewUrlParser: true , () =>
console.log("connected to db");
);
const route = require('./routers/routers');
const connect = require('./routers/routers');
const app = express();
app.use(express.urlencoded( extended: false ));
app.use(express.json());
app.set("views", "views")
app.set("view engine", "hbs")
app.use(express.static('public'));
app.use('/user', route);
app.listen(3000, () => console.log("Server Is Runing on localhost:3000"));
【问题讨论】:
【参考方案1】:您可以尝试确保您已通过DB_CONNECT
。
你可以试试DB_CONNECT=YOUR_DB_URI node index.js
另外,您可以在脚本开头使用console.log(process.env.DB_CONNECT)
进行检查。
【讨论】:
【参考方案2】:错误消息告诉mongoose.connect
接收的URL是undefined
。我建议您改为 process.env.DB_CONNECT
尝试将 URL 传递给数据库以进行测试,看看是否可行。
问题在于process.env.DB_CONNECT
设置不正确,您可能需要检查dotenv
配置。
【讨论】:
以上是关于`mongoose.connect()` 引发错误:第一个参数应该是字符串,已接收的主要内容,如果未能解决你的问题,请参考以下文章
Promisifying Mongoose Connect 中的类型错误
mongoose.connect 不是一个函数 - React Native
javascript [mongoose connect]功能连接到mongoose #mongoose