Skip to content

Instantly share code, notes, and snippets.

@AsP3X
Last active December 20, 2021 13:40
Show Gist options
  • Save AsP3X/443edbc69560db3d9ed5c7bad259c4e6 to your computer and use it in GitHub Desktop.
Save AsP3X/443edbc69560db3d9ed5c7bad259c4e6 to your computer and use it in GitHub Desktop.
issue_fs.readFileSync_path_does_not_exist

Issue with fs.readFileSync

While using fs.readFileSync i encountered a problem loading a config file.

Result of __dirname

console.log(__dirname); >>>>>> C:\Users\MYUSER\Desktop\Development\ehrekonto\api\server\api\routes

The config file i'm trying to load is located one directory above: C:\Users\MYUSER\Desktop\Development\ehrekonto\api\server\api\configs\protected.json

I'm using fs.readFileSync inside the route users that is required and loaded by app.js in the server root. fs.readFileSync("../configs/protected.json");


Problem solved with help by Jakob on the Javascripters discord.
fs.readFileSync(path.resolve(__dirname, '../configs/protected.json'));

[nodemon] starting `node server/server.js`
Ehrekonto: orders route loaded
Ehrekonto: products route loaded
node:internal/fs/utils:344
    throw err;
    ^

Error: ENOENT: no such file or directory, open '../configs/protected.json'
    at Object.openSync (node:fs:585:3)
    at Object.readFileSync (node:fs:453:35)
    at Object.<anonymous> (C:\Users\MYUSER\Desktop\Development\ehrekonto\api\server\api\routes\users.js:15:26)
    at Module._compile (node:internal/modules/cjs/loader:1101:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Module.load (node:internal/modules/cjs/loader:981:32)
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)
    at Module.require (node:internal/modules/cjs/loader:1005:19)
    at require (node:internal/modules/cjs/helpers:94:18)
    at C:\Users\MYUSER\Desktop\Development\ehrekonto\api\server\app.js:45:24 {
  errno: -4058,
  syscall: 'open',
  code: 'ENOENT',
  path: '../configs/protected.json'
}
[nodemon] app crashed - waiting for file changes before starting...
const rateLimit = require('express-rate-limit');
const mongoose = require('mongoose');
const express = require('express');
const fs = require('fs');
const router = express.Router();
// Import custom modules
const errorHandlerLogger = require('../../assets/logging/errorHandler');
const passCrypt = require('../../assets/login/passCrypt');
// Import models
const User = require('../models/users');
// Import protected config
const protectConfig = fs.readFileSync('../configs/protected.json');
console.log(__dirname);
// ROUTES are located here!
module.exports = router;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment