节点错误无法在发送后设置标头

时间:2015-06-05 09:32:51

标签: javascript node.js express

我是nodeJs的新手,我想从系统中读取文件, 我能够在控制台中看到文件内容,但在浏览器和我

中看不到

我在这里错过了什么?

var myData = null;
    fs.readFile('C:\\Users\\jbt\\Desktop\\simplefile.txt', 'utf8', function (err,data) {
        if (err) {
            return console.log("the error is: " + err);
        }
        console.log(data);
        myData = data;
    });
    res.send(myData);

我在SO中尝试了一些其他帖子,但没有任何帮助..

3 个答案:

答案 0 :(得分:1)

你试图发送两次响应,即。 res.send()被调用两次,这就是为什么一旦发送响应你就无法重新发送它。

答案 1 :(得分:0)

fs.ReadFile是异步操作,您正在发送响应并且并行读取文件。你应该这样做

    var myData = null;
    fs.readFile('C:\\Users\\jbt\\Desktop\\simplefile.txt', 'utf8', function (err,data) {
        if (err) {
            return console.log("the error is: " + err);
        }
        console.log(data);
        myData = data;
        res.send(myData);
    });

我建议您阅读有关Node.js和异步方法范例的更多信息。

答案 2 :(得分:0)

如果您收到错误,请发布错误?。检查以下答案。

var myData ;
    fs.readFile('C:\\Users\\jbt\\Desktop\\simplefile.txt', 'utf8', function (err,data) {
        if (err) {
            return console.log("the error is: " + err);
        }
        console.log(data);
        myData = data;
       res.end(myData);//If you are not using express
    });

我认为它会对你有所帮助。

相关问题