我是一个完整的新手,只是做了这样的事情:
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?
答案 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);