我的代码有问题,我在app.js中使用了此代码:
const mongoose = require('mongoose');
const dotenv = require('dotenv');
dotenv.config()
mongoose.connect(process.env.MONGO_URL)
.then(() => console.log("DB connected!"));
mongoose.connection.on('error',function(err){
console.log("The error is: ");
});
环境.txt:
MONGO_URL=mongodb+srv://blur:blur@nodeapi-pfnvf8.mongodb.net/test?retryWrites=true
PORT:8080
出于某种原因,它给了我一个奇怪的错误:
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.
at new MongooseError (C:\Users\razei\Desktop\Recat\project2\node_modules\mongoose\lib\error\mongooseError.js:14:11)
at NativeConnection.Connection.openUri (C:\Users\razei\Desktop\Recat\project2\node_modules\mongoose\lib\connection.js:465:11)
at Mongoose.connect (C:\Users\razei\Desktop\Recat\project2\node_modules\mongoose\lib\index.js:289:15)
at Object.<anonymous> (C:\Users\razei\Desktop\Recat\project2\ap.js:9:10)
at Module._compile (internal/modules/cjs/loader.js:701:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:712:10)
at Module.load (internal/modules/cjs/loader.js:600:32)
at tryModuleLoad (internal/modules/cjs/loader.js:539:12)
at Function.Module._load (internal/modules/cjs/loader.js:531:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:754:12)
at startup (internal/bootstrap/node.js:283:19)
at bootstrapNodeJSCore (internal/bootstrap/node.js:622:3) [nodemon] app crashed - waiting for file changes before starting...
有人能帮我吗?我读了一些帖子,但没有一篇能帮上忙
9条答案
按热度按时间b5buobof1#
当您没有将.env文件保存在根文件夹中时,也会发生这种情况。
slwdgvem2#
将env文件保存为.env而不是env。txt,并确保它也在你的根文件夹中&看看它是否有效!MONGO_URI也是传统的命名约定,但这不重要。
此外,您可以使用下面的行简化上面的2个require语句,您应该尽快调用:
tjvv9vkg3#
需要这样的dotenv。这对我很有用
ecbunoof4#
首先,env文件应该保存为.env而不是env。txt是文本文件的扩展名。
此外,我认为您没有将项目命名为“test”,因此请确保将其更改为当前项目名称。
如果仍然出现错误,请不要使用环境变量,而是在
mongoose.connect()
中用双引号或单引号添加整个mongodb路径。gojuced75#
我也遇到了同样的错误,由于环境变量MONGODB_URI没有设置,运行heroku config时cli中没有变量,所以它崩溃了。
修复程序正在运行:heroku addons:create mongolab:sandbox
如果需要heroku push origin master,那么heroku config现在应该显示您的.env变量。
3okqufwl6#
当我们将数据库凭据放在.env文件中,并且在服务器的主文件中,我们在.env文件之前创建连接时,就会出现错误,相反,我们应该在需要.env之后创建连接。
wmtdaxz37#
我也遇到了这个错误,您需要做的第一件事是将
.env
文件放在“根文件夹”中。这将解决您的问题。小时
js4nwp548#
出现了相同的错误..:
这对我也很有效。。
require('dotenv').config();
查看此帖子了解更多信息:https://dev.to/aritik/connecting-to-mongodb-using-mongoose-3akh
uurity8g9#
确保根文件夹位于config的位置。创建env,并为@app指定正确的路径。js=>dotenv。config(路径:“./config.env”)。
dotenv公司。config({路径:“./config.env”});