使用JavaScript读取文件内容并将其打印到控制台

8

我是javascript的新手,我想指定一个javascript程序从文件中读取并将文件内容打印到控制台。下面是我编写的代码,但出现了错误,请问有什么问题吗?

var express = require('express');

var app = express.createServer(express.logger());

app.get('/',function(request,response){

     var fs = require('fs');
     var buffer = new Buffer(fs.readFileSync('index.html','utf8'));

         response.send(Buffer.toString());

});

   var port = process.env.PORT || 5000;
   app.listen(port,function()
{
    fs.readFileSync();
    console.log("Listening on"+ port);
}
);

1
你是在说 Node 吗? - Asad Saeeduddin
是的,我在谈论Node。 - Omiye Jay Jay
1
我还没有做过任何研究。你能帮忙吗? - Omiye Jay Jay
1
不,我还没有做过任何研究。你能帮忙吗?——你一定是新来的。我们不是这样做事的…… - dandavis
什么是错误?您是否安装了express并阅读了有关fsNode.js API文档?如果这样说有失礼,但我建议您阅读有关JS、Node.js和express的教程和文档。这段代码存在许多问题。 - JiminP
显示剩余7条评论
1个回答

13

使用fs对象的readFile方法读取文件,然后使用console.log打印它:

/* File System Object */
var fs = require('fs');

/* Read File */
fs.readFile('foo.json', bar)

function bar (err, data)
  {
  /* If an error exists, show it, otherwise show the file */
  err ? Function("error","throw error")(err) : console.log(JSON.stringify(data) );
  };
例如,如果它被命名为loadfiles.js,则运行它如下所示:
node loadfiles.js

5
如果您只想要字符串,可以使用data.toString('utf8') - Simon Franzen
1
请注意,还有一个同步版本:readFileSync()。如上所述的示例,脚本将在调用bar()函数之前结束。 - Mike Hedman
@MikeHedman,我不明白你的观点是什么。readFile 是异步的,而 JS 在整个过程中都是异步的,所以它们是相适应的。 - Timo
@SimonFranzen,你的答案用toString非常好,但使用json.stringify会输出数字,这不是我们想要的。 - Timo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接