nodejs fs.readdir的问题
发布于 11 年前 作者 buzzmjx 12419 次预览 最后一次回复是 10 年前 来自 问答
从node.js + express4 写一个自己的博客网站教程中写代码,发现获取所有文件夹下的文件,最终结果如何在外面得到呢??return 返回的不是getBlogList的返回值吧?
function getBlogList(blogDir) {
fs.readdir(blogDir, function (err, files) {
var blogList = [];
if (files && files.length) {
files.forEach(function (filename) {
//split file name and generate url...
//...
//create a blogItem { title: blogTitle, url: blogUrl }
blogList.push(blogItem);
});
}
return blogList;
});
}
刚接触node,疑惑很久,请各位赐教~谢谢
7 回复
由于fs.readdir为异步操作,你可以使用回调函数来做:
getBlogList的使用是这样:
现在我终于知道为什么async不够用,需要promise,我也知道为什么promise也不够用了,要generator,我也知道generator为什么不够用了,要fibjs,都是异步惹得祸啊。 楼主如果需要遍历目录内的目录的话,恐怕还要加点代码。给个参考dir 看看着那一层层的回调,有的人深恶痛绝,有的却是很喜欢的,我就是喜欢的那种人。
顺便求高人用promise也实现一个,让我顺便学习一下promise的用法,回调其实倒不可怕,可怕的是那些一层又一层的错误处理,promise只懂皮毛,还望大神来答疑。
@zhengchubo 谢谢啊~解决啦
@coordcn 嘿嘿 学习啦~~谢谢
太棒了,遇到了同样的问题,谢谢:)
我去,踩到盗洞了。还以为 2 楼在开嘲讽。6楼支持你直接 fs.readdirSync