TypeError:fs.​​readFile不是函数

时间:2014-05-30 15:56:15

标签: javascript requirejs

我尝试使用javascript导入文件,每次运行时都会闪烁同样的错误。我已经尝试重新下载文件系统,我刚刚下载了requirejs。

var importFile = function() {
    console.log("started import");
    var fs = require(['fs']);
    console.log("required!");
    fs.exists('articles.txt', function(exists) {
        if(exists) console.log("found file");
    });
    fs.readFile('articles.txt', function(err, data) {
        if(err) {
            throw err;
            console.log("error thrown");
        }
        var rawFileData = data.toString().split("\n");
        for(i in rawFileData) {
            console.log(articles[i]);
        }
    });
    for(var i = 0; i< rawFileData.length; i+=4) {
        var title = rawDataFiles[i];
        var tags = rawDataFiles[i+1].split(",");
        var content = rawDataFiles[i+2];
        var date = rawDataFiles[i+3];
        articles.append(new Article(title, tags, content, date));
    }
}

2 个答案:

答案 0 :(得分:0)

如果之前未加载fs并且require确实是requirejs,则必须将其置于回调中。

require(['fs'], function(fs) { ... });

我怀疑您正在使用节点及其节点的要求。你应该放下方括号。

var fs = require('fs');

答案 1 :(得分:0)

我使用jQuery解决了这个问题:

var importFile = function() {
    console.log("started import");
    var file = "/path/to/file.txt";
    console.log(file);
    $.get(file, function(data) {
        var lines = data.split("\n");
        var id = 0;
        $.each(lines, function(n, elem) {
            parseLine(elem, id);    
            id++;
        }); 
        console.log("done parsing.");
    }, "text");
    console.log("done getting");
};

虽然它永远不会打印“完成获取”。我不知道为什么。