使用node.js的fs
模块读取目录中的所有文件并返回其内容,但用于存储内容的数组始终为空。返回node.js中多个文件的内容
服务器端:
app.get('/getCars', function(req, res){
var path = __dirname + '/Cars/';
var cars = [];
fs.readdir(path, function (err, data) {
if (err) throw err;
data.forEach(function(fileName){
fs.readFile(path + fileName, 'utf8', function (err, data) {
if (err) throw err;
files.push(data);
});
});
});
res.send(files);
console.log('complete');
});
AJAX功能:
$.ajax({
type: 'GET',
url: '/getCars',
dataType: 'JSON',
contentType: 'application/json'
}).done(function(response) {
console.log(response);
});
在此先感谢。
你做错了,你发送的结果不知道fs.readFile在每个文件上运行异步,这意味着文件不读取niether内容被推送到阵列和数组已被发送到客户端 –
我不知道谁低估了这个问题,如果这个问题无效,那么应该在投票时进行评论。所有的问题都不是愚蠢的,如果有人对新的异步式样式他/她会做这样的编码。 –
我虽然我的问题是我使用异步方法,但我试图使用他们的同步对应('readdirSync','readFileSync'),仍然没有得到预期的结果。 – DCruz22