我是Node.js的新手,我正在尝试理解回调。我想知道我的代码有什么问题。我原以为它会在目录中显示没有扩展名的所有文件,但我得到的只是undefined
消息。
'use strict';
const fs = require('fs');
const postsDirectory = './app/posts';
function listPosts(callback) {
let posts = [];
fs.readdir(postsDirectory, function(err, files) {
if (err) {
callback(err);
} else {
files.forEach(file => {
posts.push(file.split('.').slice(0, -1).join('.'));
});
callback(posts);
};
});
};
console.log(listPosts());
process.exit(0)
预期产出:
file1
file2
file3
答案 0 :(得分:1)
以下列方式使用回调
'use strict';
const fs = require('fs');
const postsDirectory = './app/posts';
function listPosts(callback) {
let posts = [];
fs.readdir(postsDirectory, function(err, files) {
if (err) {
return callback(err);
} else {
files.forEach(file => {
posts.push(file.split('.').slice(0, -1).join('.'));
});
//check before return here
console.log("postttttttttttttttttt", posts);
return callback(null, posts);
};
});
};
//Use callback function with params
listPosts(function(err,result){
if(err){
console.log(err)
}else{
console.log(result)
}
});
process.exit(0)