I'm getting the following console error in my node application: Error: Cannot find module './config'
I've read up on similar questions (e.g. internal/modules/cjs/loader.js:582 throw err) so I've checked for duplicative folder/file names but could I be missing something?
Below is the full error I'm getting in the console after the "node app.js" command.
internal/modules/cjs/loader.js:905 throw err; ^Error: Cannot find module './config'Require stack:- C:\Users\arthu\development\projectWhereWoof\dustyv3\backend\config\db.js- C:\Users\arthu\development\projectWhereWoof\dustyv3\backend\app.js at Function.Module._resolveFilename (internal/modules/cjs/loader.js:902:15) at Function.Module._load (internal/modules/cjs/loader.js:746:27) at Module.require (internal/modules/cjs/loader.js:974:19) at require (internal/modules/cjs/helpers.js:92:18) at Object.<anonymous (C:\Users\arthu\development\projectWhereWoof\dustyv3\backend\config\db.js:2:16) at Module._compile (internal/modules/cjs/loader.js:1085:14) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10) at Module.load (internal/modules/cjs/loader.js:950:32) at Function.Module._load (internal/modules/cjs/loader.js:790:14) at Module.require (internal/modules/cjs/loader.js:974:19) at require (internal/modules/cjs/helpers.js:92:18) at Object.<anonymous> (C:\Users\arthu\development\projectWhereWoof\dustyv3\backend\app.js:2:19) at Module._compile (internal/modules/cjs/loader.js:1085:14) at Object.Module._extensions..js (internal/modules/cjs/loader.js:1114:10) at Module.load (internal/modules/cjs/loader.js:950:32) at Function.Module._load (internal/modules/cjs/loader.js:790:14) {code: 'MODULE_NOT_FOUND',requireStack: ['C:\\Users\\arthu\\development\\projectWhereWoof\\dustyv3\\backend\\config\\db.js','C:\\Users\\arthu\\development\\projectWhereWoof\\dustyv3\\backend\\app.js' ]}
Below is my folder structure and code that I'm running.
- backend
- config
- db.js
- default.json
- models
- Dogs.js
- node_modules
- routes
- dogs.js
- app.js
- package-lock.json
- package.json
- config
//app.jsconst express = require('express');const connectDB = require('./config/db');var cors = require('cors');// routesconst dogs = require('./routes/dogs');const app = express();// Connect DatabaseconnectDB();// cors handling logicapp.use(cors({ origin: true, credentials: true }));// Init Middlewareapp.use(express.json({ extended: false }));app.get('/', (req, res) => res.send('Hello world!'));// use Routesapp.use('./routes/dogs', dogs);const port = process.env.PORT || 8082;app.listen(port, () => console.log(`Server running on port ${port}`));
//db.jsconst mongoose = require('mongoose');const config = require('./config');const db = config.get('mongoURI');const connectDB = async () => { try { await mongoose.connect( db, { useNewUrlParser: true, useUnifiedTopology: true } ); console.log('MongoDB is Connected...'); } catch (err) { console.error(err.message); process.exit(1); }};module.exports = connectDB;
//default.json{"mongoURI":"mongodb+srv://INTENTOMITTED:INTENTOMITTED@INTENTOMITTED.oxagu.mongodb.net/myFirstDatabase?retryWrites=true&w=majority"}
//Dogs.jsconst mongoose = require('mongoose');const DogSchema = new mongoose.Schema({ name: { type: String, required: true }, breedTypePrim: { type: String, required: true }, breedTypeSec: { type: String, required: false }, birthday: { type: Date, required: false }, adoptionDate: { type: Date, required: true }, weight: { type: Number, required: false }, origin: { type: String, required: false }});module.exports = Dog = mongoose.model('dog', DogSchema);
//dogs.jsconst express = require('express');const router = express.Router();// Load Dog modelconst Dog = require('../models/Dogs');// @route GET api/dogs/test// @description tests dogs route// @access Publicrouter.get('/test', (req, res) => res.send('dog route testing!'));// @route GET api/dogs// @description Get all dogs// @access Publicrouter.get('/', (req, res) => { Dog.find() .then(dogs => res.json(dogs)) .catch(err => res.status(404).json({ nodogsfound: 'No Dogs found' }));});// @route GET api/dogs/:id// @description Get single dog by id// @access Publicrouter.get('/:id', (req, res) => { Dog.findById(req.params.id) .then(dog => res.json(dog)) .catch(err => res.status(404).json({ nodogfound: 'No Dog found' }));});// @route GET api/dogs// @description add/save dog// @access Publicrouter.post('/', (req, res) => { Dog.create(req.body) .then(dog => res.json({ msg: 'Dog added successfully' })) .catch(err => res.status(400).json({ error: 'Unable to add this dog' }));});// @route GET api/dogs/:id// @description Update dog// @access Publicrouter.put('/:id', (req, res) => { Dog.findByIdAndUpdate(req.params.id, req.body) .then(dog => res.json({ msg: 'Updated successfully' })) .catch(err => res.status(400).json({ error: 'Unable to update the Database' }) );});// @route GET api/dogs/:id// @description Delete dog by id// @access Publicrouter.delete('/:id', (req, res) => { Dog.findByIdAndRemove(req.params.id, req.body) .then(dog => res.json({ mgs: 'Dog entry deleted successfully' })) .catch(err => res.status(404).json({ error: 'No such a dog' }));});module.exports = router;