【问题标题】:NodeJs - Javascript - readFileSyncNodeJs - Javascript - readFileSync
【发布时间】:2018-11-15 23:08:06
【问题描述】:

我们正在 Nodejs 中创建一个模块,我们想在用户文件夹 (Windows) 中读取一个 JSON 文件,但系统 var "%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 node.js


    【解决方案1】:

    使用process.env.USERPROFILE

    所以在你的例子中:

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

    【讨论】:

    • 注意:在process.env你可以看到所有的windows环境变量。它区分大小写,因此请使用正确的大写/小写。
    • 工作!谢谢:)
    【解决方案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);
    

    【讨论】:

    • 工作!谢谢:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-11
    • 2020-07-29
    • 2016-09-21
    • 2021-05-18
    • 2020-04-26
    • 2013-07-10
    • 1970-01-01
    相关资源
    最近更新 更多