0
因此,基本上我有一個文件夾,其中包含其他文件夾,每個文件夾都有自己的一組圖像,我想在'ul'
中顯示。問題是因爲我使用的是readdir
,這是async
,我該如何編寫response
,而沒有得到「在.end()
之後寫入錯誤」。這是我的代碼的樣子。從文件夾內的文件夾讀取文件
var fs = require('fs'),
url = require('url');
module.exports = function(req, res) {
req.pathName = req.pathName || url.parse(req.url).pathname;
if(req.pathName === '/gallery') {
fs.readdir('./content/images/public', function(err, filenames) {
if (err) {
console.log(err);
return;
}
if(filenames.length) {
var list_content = '';
for (var i = 0; i < filenames.length; i++) {
fs.readdir('./content/images/public/' + filenames[i], function(err, images) {
if (err) {
console.log(err);
return;
}
for (var i = 0; i < images.length; i++) {
list_content += '<li><a href="/gallery/details/'+ i +'">' + images[i] + '</a></li>';
}
var list = '<ul>' + list_content + '</ul><a href="/">Go back to homepage</a>';
res.writeHead(200, {
'Content-Type': 'text/html'
});
res.send(list);
});
}
} else {
res.writeHead(200, {
'Content-Type': 'text/html'
});
res.write('<p>There are no images in the gallery</p><a href="/">Go back to homepage</a>');
res.end();
}
});
} else {
return true;
}
}
res.end();
}
});
我得到一個錯誤,說「res.send()」不是函數 –
好的。那一定是因爲你不在路由中調用這個異步函數?如果你的功能(請求,水庫)?請顯示更多的周邊代碼,並看看。 –
我編輯了我的問題,把所有的代碼放在我的.js文件中 –