var http = require('http');
var fs = require('fs');
http.createServer(function (req, res) {
var mergefile = '';
fs.readFile('a.txt',function(err, data){
mergefile += data;
});
fs.readFile('b.txt',function(err, data){
mergefile += data;
});
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end(mergefile);
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
如上错误代码所示,我希望http服务器接受请求的时候读取合并a.txt和b.txt两个文件内容返回。
但是这个代码不对,我初学nodejs,希望各位能给个好示例。
7 回复
同意楼上的,node是基于事件循环的异步,你这个还没读到文件,就直接res.end了,结果会是空。修改下代码就OK了: var http = require(‘http’); var fs = require(‘fs’); http.createServer(function(req, res) { var mergefile = '’; fs.readFile('a.txt’, function(err, data) { mergefile += data; fs.readFile('b.txt’, function(err, data) { mergefile += data; res.writeHead(200, { 'Content-Type’: ‘text/plain’ }); res.end(mergefile); }); }); }).listen(1337, ‘127.0.0.1’); console.log(‘Server running at http://127.0.0.1:1337/’);