Мы создаем модуль в 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
Спасибо.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы можете использовать такой пакет, как 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);
Используйте process.env.USERPROFILE.
Итак, в вашем примере:
var myConfig = JSON.parse(fs.readFileSync(process.env.USERPROFILE + '/manager-cli.json', 'utf8'));
Примечание. В process.env вы можете видеть все переменные среды Windows. Он чувствителен к регистру, поэтому используйте правильные прописные / строчные буквы.
Работающий! Спасибо :)
Работающий! Спасибо :)