错误:未定义配置属性“ mongoURI”

时间:2019-06-24 12:03:13

标签: node.js mongodb

我尝试启动一个项目,但是当我尝试将mongo与服务器连接时,遇到一个错误,表明该连接无法正常工作,因为找不到文件夹中的连接字符串。

我的数据库文件:

const mongoose = require('mongoose');
const config = require('config');
const db = config.get('mongoURI')


const connectDB = async () => {

try{
    await mongoose.connect(db);
    console.log('MongoDB connected..');
}catch(err){
    console.error(err.message);
    process.exit(1)
}
}

module.exports = connectDB;

我的defualt.json:

{
 "mongoURI": "mongodb+srv://<username>:<password>@devconector- 
 zfloj.mongodb.net/test?retryWrites=true&w=majority"
}

错误:      警告:在配置目录中找不到配置:C:\ Users \ Yair      Azaria \ Desktop \תכנות\ node.js \ DevConnector \ config      警告:要禁用此警告,请在屏幕上设置SUPPRESS_NO_CONFIG_WARNING      环境。      C:\ Users \ Yair      Azaria \ Desktop \ node.js \ DevConnector \ node_modules \ config \ lib \ config.js:203      抛出新错误('Configuration property“'+ property +'”未定义');      ^

Error: Configuration property "mongoURI" is not defined at Config.get(C:\Users\YairAzaria\Desktop\תכנות\node.js\DevConnector\node_modules\config\lib\config.js:203:1)
at Object.<anonymous> 
(C:\Users\YairAzaria\Desktop\תכנות\node.js\DevConnector\config\db.js:3:19)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Module.require (internal/modules/cjs/loader.js:637:17)
at require (internal/modules/cjs/helpers.js:22:18)
at Object.<anonymous> 
(C:\Users\YairAzaria\Desktop\תכנות\node.js\DevConnector\server.js:2:19)
at Module._compile (internal/modules/cjs/loader.js:689:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)

4 个答案:

答案 0 :(得分:1)

您需要在项目的根目录下有一个config文件夹,并且在该default.json文件夹中有一个config文件。

default.json文件中,设置您的mongoURI值。这样一来,当您在程序中访问mongoURI时,就应该具有一个值(如代码所示,您现在正在执行此操作)。

$ npm install config
$ mkdir config
$ vi config/default.json
{
  "mongoURI": ""mongodb://userID:password@mongoBox:27001/myMongoDB"
}

在此链接中查找更多信息,https://www.npmjs.com/package/config

答案 1 :(得分:0)

我猜您正在尝试从文件夹中不存在的config.json文件获取dbURI。在您的情况下,您已将其命名为default.json,因此只需替换db.js的import部分中的文件名,即可正常工作。如下图所示

const mongoose = require('mongoose');
const defualt = require('defualt');
const db = defualt.mongoURI; 

const connectDB = async () => {

try{
    await mongoose.connect(db);
    console.log('MongoDB connected..');
}catch(err){
    console.error(err.message);
    process.exit(1)
}
}

让我知道结果!

答案 2 :(得分:0)

所以问题是您没有正确拼写“ default”,而是将其拼写为“ defualt.json”而不是“ default.json”

答案 3 :(得分:0)

您已经在“src”文件夹中创建了 config 文件夹。请将 config 文件夹移出/向上一个目录。