NodeJs - Javascript - readFileSync

Мы создаем модуль в Nodejs и хотим прочитать файл JSON в папке пользователя (Windows), но системная переменная "% userprofile%" не работает с функцией fs.readfilesync.

var fs = require('fs');
var myConfig = JSON.parse(fs.readFileSync('%userprofile%/manager-cli.json', 'utf8'));

Ошибка:

Error: ENOENT: no such file or directory, open 'C:\angular\manager-cli\%userprofile%\manager-cli.json'

Кто-нибудь знает решение проблемы? Или альтернативу.

Источник: https://github.com/jserra91/manager-cli/blob/master/bin/global.js

Спасибо.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
411
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете использовать такой пакет, как ospath:

const path     = require('path');
const ospath   = require('ospath');
const fs       = require('fs');

const filePath = path.join(ospath.home(), 'manager-cli.json');
const myConfig = JSON.parse(fs.readFileSync(filePath, 'utf8'));
// or possibly:
// const myConfig = require(filePath);

Работающий! Спасибо :)

Jordi Serra 15.11.2018 16:12
Ответ принят как подходящий

Используйте process.env.USERPROFILE.

Итак, в вашем примере:

var myConfig = JSON.parse(fs.readFileSync(process.env.USERPROFILE + '/manager-cli.json', 'utf8'));

Примечание. В process.env вы можете видеть все переменные среды Windows. Он чувствителен к регистру, поэтому используйте правильные прописные / строчные буквы.

Martin 15.11.2018 16:03

Работающий! Спасибо :)

Jordi Serra 15.11.2018 16:12

Другие вопросы по теме