如何使用Node.js从json文件中读取数据并将读取的数据显示为html?

时间:2014-07-09 23:21:30

标签: javascript html json node.js

我是一个完整的新手,只是做了这样的事情:

    var fs = require('fs');
    var file = __dirname + '/data.json';
    var http = require ('http');
    var server = http.createServer(function (req, res){
    res.writeHead(200);

    fs.readFile(file, 'utf8', function (err, data) {
            if (err) {
            console.log('Error: ' + err);
            return;
            }

    data = JSON.parse(data);

    res.end(data);
    });


    });
        server.listen(8000);

我在做的时候:

    data = JSON.parse(data);
    console.dir(data);

而不是

    data = JSON.parse(data);
    res.end(data);

它能够在控制台上显示我在.json中的数据。但是,当我尝试使用res.end创建服务器并发布数据时,它并没有真正起作用。

有人可以提供一些见解吗?是因为我这里的“数据”只是一个对象吗?我应该如何处理从.json获取的数据以便用于我的html?

2 个答案:

答案 0 :(得分:2)

由于文件格式正确,您只需将其传送到响应即可。

var fs = require('fs');
var file = __dirname + '/data.json';
var http = require ('http');
var server = http.createServer(function (req, res){
  res.writeHead(200, {'Content-Type': 'application/json'});
  fs.createReadStream(file, 'utf8').pipe(res);
});
server.listen(8000);

答案 1 :(得分:1)

http模块不支持Objects作为响应(它支持缓冲区或字符串),所以你必须这样做:

res.end(JSON.stringify(data));

但是,如果使用express,您可以执行此操作

res.send(data);