user2651269
user2651269

Reputation: 41

TypeError: fs.readFile is not a function

I'm trying to import a file using javascript, and every time I run, it flashes the same error. I already tried redownloading the file system, and I just downloaded 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));
    }
}

Upvotes: 3

Views: 12519

Answers (2)

user2651269
user2651269

Reputation: 41

I solved this using 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");
};

though it never prints "done getting". I don't know why.

Upvotes: 1

Daniel A. White
Daniel A. White

Reputation: 190986

If fs hasn't loaded before and require is really requirejs, you have to have it in a callback.

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

I suspect you are using node and its node's require. You should just drop the square brackets.

var fs = require('fs');

Upvotes: 0

Related Questions