【发布时间】:2022-02-05 05:48:46
【问题描述】:
每当我尝试运行节点 index.js 时,我都会收到“错误 [MongooseError]:openUri() 的 uri 参数必须是字符串,得到“未定义”。确保 mongoose.connect() 的第一个参数或mongoose.createConnection() 是一个字符串”
另外,index.js 和 .env 在同一个目录中。
index.js:
const express = require('express');
require('dotenv').config();
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
const routes = require('./routes/api');
const path = require('path');
const app = express();
const port = process.env.PORT || 3000;
mongoose.connect(process.env.DB, { useNewUrlParser: true })
.then(() => console.log(`Database connected successfully`))
.catch(err => console.log(err));
mongoose.Promise = global.Promise;
app.use((req, res, next) => {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
next();
});
app.use(bodyParser.json());
app.use('/api', routes);
app.use((err, req, res, next) => {
console.log(err);
next();
});
app.listen(port, () => {
console.log(`Server running on port ${port}`)
});
.env:
NODE_ENV = development
PORT = 3000
MONGO_URI = mongodb+srv://"User":1@cluster0.da5tj.mongodb.net/myFirstDatabase?retryWrites=true&w=majority
【问题讨论】:
-
process.env.DB定义在哪里? -
在 node_modules/dotenv/Readme 中: const db = require('db') db.connect({ 主机:process.env.DB_HOST,用户名:process.env.DB_USER,密码:process.env .DB_PASS })
-
只在索引中
标签: javascript node.js mongodb express mongoose