我只想通过猫鼬将我的数据库连接到我的本地主机上。但是,我收到此错误:
C:\Users\przyb\Desktop\JWT\node_modules\mongoose\lib\connection.js:520
throw new MongooseError('The `uri` parameter to `openUri()` must be a ' +
^
MongooseError: The `uri` parameter to `openUri()` must be a string, got "undefined". Make sure the first parameter to `mongoose.connect()` or `mongoose.createConnection()` is a string.
这让我感到困惑,因为要传递的变量肯定是字符串。这是我的文件树:
JWT
|
model --- User.js
node_modules
public
routes --- .env.js, auth.js
views
index.js
package.json
package-lock.json
index.js
const express = require("express");
const app = express();
const mongoose = require("mongoose");
const dotenv = require("dotenv").config();
//Imported routes
const authRoute = require('./routes/auth');
//Connect to db
mongoose.connect(
process.env.DB_CONNECT,
{useNewUrlParser:true},
() => console.log("connected to db")
);
//Middleware
app.use(express.json());
//Route Middlewares
app.use('/api/User', authRoute);
app.listen(3000, () => console.log("All good"));
.env.js
DB_CONNECT = "mongodb+srv://USERNAME:PASSWORD@cluster0-wu2im.mongodb.net/test?retryWrites=true&w=majority";
Stackoverflow表示我对此问题的代码过多,因此无法向您展示auth.js和User.js。
答案 0 :(得分:0)
此问题已通过以下方式解决:
.env.js
重命名为.env
。.env
文件放入项目的根目录。答案 1 :(得分:0)
此问题已解决:
.env.js
文件重命名为仅 .env
.env
文件放在项目的根目录下。与您的 package.json
文件所在的目录相同。.env
变量即可。DB_CONNECT
放在 Key 中,将 mongodb+srv://USERNAME:PASSWORD@cluster0-wu2im.mongodb.net/test?retryWrites=true&w=majority
放在 Value 中。
而已。您将能够部署您的应用,包括您的 .env 变量。