我需要获取 Node.js 中特定目录的项目数
如果我得到类似的元素
var dirItems = fs.readdirSync(__dirname+'/my_dir');
然后获取特定项目,例如
dirItems[1]
一切都好
但是如果我尝试获取他们的电话号码
dirItems.length
或
Object.keys(dirItems).length
该页面无法在浏览器中运行
如何获取目录项的数量?
<小时/>已更新
我的完整代码:
var http = require('http'),
fs = require('fs');
http.createServer(function(req, res) {
var dirItems = fs.readdirSync(__dirname+'/my_dir');
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(dirItems.length);
}).listen(80, 'localhost');
最佳答案
我能够重现您遇到的错误。
基本 http 服务器类的res.end()
对于发送的内容非常挑剔。您必须给它一个字符串(您得到的错误应该是这里的一个重要线索)。
所以,改变这个:
res.end(dirItems.length);
对此:
res.end(dirItems.length.toString());
而且,它对我有用。我能够重现您原来的错误,然后通过进行这个简单的更改使其工作。
从逻辑上讲,您只能将字符串数据作为 http 响应发送,因此显然 res.end()
不够智能,无法自行尝试字符串转换。你必须自己做。
仅供引用,如果您使用像 Express 这样的更高级别的框架,它对您发送的内容更加宽容(在这种情况下它会尝试进行字符串转换)。
关于javascript - 如何获取 Node.js 中的目录项数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53322313/