【问题标题】:javascript read .ini filejavascript读取.ini文件
【发布时间】:2019-11-26 04:53:55
【问题描述】:

我尝试搜索。我该怎么做?我正在创建 html,我想在客户端通过 javascript 读取 .ini 文件而不是在服务器中。

我从javascript parser for a string which contains .ini data复制代码

error Uncaught ReferenceError: require is not defined var fs = require('fs')

function parseINIString() {
          var fs = require('fs')
          var data = fs.readFileSync('C:\\test.ini', 'utf8');

            var regex = {
                section: /^\s*\[\s*([^\]]*)\s*\]\s*$/,
                param: /^\s*([\w\.\-\_]+)\s*=\s*(.*?)\s*$/,
                comment: /^\s*;.*$/
            };

            var value = {};
            var lines = data.split(/\r\n|\r|\n/);
            var section = null;
            alert(lines);
            for (x = 0; x < lines.length; x++) {

                if (regex.comment.test(lines[x])) {
                    return;
                } else if (regex.param.test(lines[x])) {
                    var match = lines[x].match(regex.param);
                    if (section) {
                        value[section][match[1]] = match[2];
                    } else {
                        value[match[1]] = match[2];
                    }
                } else if (regex.section.test(lines[x])) {
                    var match = lines[x].match(regex.section);
                    value[match[1]] = {};
                    section = match[1];
                } else if (lines.length == 0 && section) {//changed line to lines to fix bug.
                    section = null;
                };  
            }

            return value;
        }

【问题讨论】:

  • 您无法在浏览器中以这种方式加载文件。
  • 您不能在浏览器中要求节点模块。相反,将字符串作为参数传入。您可以使用 FileReader api 从输入文件中读取文本。developer.mozilla.org/en-US/docs/Web/API/FileReader
  • 你安装了iniparser吗?
  • 如果我将文件 html 放在用户屏幕上以获取 ini 文件中的数据并输入 发送值跨度>

标签: javascript html


【解决方案1】:

假设在浏览器中运行的 javascript 是所谓的“客户端脚本”。编写客户端脚本有很多限制,其中之一是不允许访问磁盘上的用户文件。这是为了防止任何注入的黑客脚本读取私人数据。您看到的显式错误是关于新关键字“require”,它被称为“commonjs”模块,通常由 Nodejs 引入。 'fs' 也是 Nodejs 的内部模块之一。

因此,如果您仍然坚持使用客户端脚本来完成工作,则必须重写脚本,而不是“要求”“fs”模块。并使用file reader 获取文件对象的内容,该文件对象通常由file input 生成。

A detailed introduction about how to read local files.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-18
    • 2015-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 2012-06-29
    • 2016-02-23
    相关资源
    最近更新 更多