function onRequest(req, res) {
if (req.body.widget_name) {
console.log(req.body.widget_name);
}
var fs = require('fs');
var data = fs.readdir("corpdashboard/dashboards", 'UTF-8', function (err, files) {
if (err) {
return console.log(err);
}
console.log(data);
});
var body = req.body.dashboard_selected + ' ' + req.body.widget_selected + ' ';
res.setHeader('Content-Type', 'text/plain');
res.setHeader('Content-Length', body.length);
res.end(body);
}
exports.onrequest = onRequest;
我想读取目录和文件,所以我编写了这段代码并运行它。在运行我得到的fs:缺少回调函数:ENOENT readdir'D:\ dev \ corpdashboboard \ dashboard.js' 'D:\ dev \ corpdashboboard'是我拥有我的ejs文件和js文件的地方 这是什么意思? 我该怎么做才能读取其中的目录和文件
答案 0 :(得分:1)
来自官方规范:http://nodejs.org/api/fs.html#fs_fs_readdir_path_callback
fs.readdir(path, callback)
Asynchronous readdir(3). Reads the contents of a directory.
The callback gets two arguments (err, files) where files is
an array of the names of the files in the directory excluding '.' and '..'.
您使用的是错误的参数。 fs.readdir()
不接受编码。因此readdir
期望path
是一个字符串而callback
是一个函数。
应该是:
var data = fs.readdir('corpdashboard/dashboards',function (err, files) {
if (err) {
return console.log(err);
}
console.log(data);
});
答案 1 :(得分:0)
对于阅读此内容的任何人的说明:上的答案有效,但在Node v6.x中,fs.readdir确实接受了另一个参数,您可以在文档中看到。 https://nodejs.org/api/fs.html#fs_fs_readdir_path_options_callback
如果您遇到此问题,请检查以确保您正在运行Node v6.0.0或更高版本。