TypeError: fs.readFile不是一个函数

TypeError: fs.readFile is not a function

本文关键字:一个 函数 fs readFile TypeError      更新时间:2023-09-26

我正在尝试使用javascript导入文件,每次运行时,它都会闪烁相同的错误。我已经试过重新下载文件系统了,我只下载了需要的文件。

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));
    }
}
我使用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");
};

虽然它从不打印"done getting"。我不知道为什么。

如果fs之前没有加载,而require是真正需要的,你必须在回调中拥有它。

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

我怀疑你正在使用node和它的node的require。你应该去掉方括号。

var fs = require('fs');