我尝试启动一个项目,但是当我尝试将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)
答案 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 文件夹移出/向上一个目录。