javascript - 如何获取 Node.js 中的目录项数量

标签 javascript node.js

我需要获取 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/

相关文章:

javascript - 创建一个 javascript 通知插件 : How to align absolutely positioned divs on top of each other

Javascript - `this` 在回调中与 setTimeout 绑定(bind)

node.js - AWS 弹性 beanstalk 部署失败并出现 ENOMEM 错误

javascript - 为什么 node.js querysting 模块应该将加号 (+) 转换为空格?

javascript - 根据字符串数组更改 li 元素的颜色

javascript - LeafletJS map 显示不正确。怎么修?

javascript - 创建所有正则表达式匹配的数组?

node.js - s3.ListObjects() 不执行任何操作

node.js - 有没有类似于 async.waterfall 的东西,但有错误?

node.js - 发送消息时 Azure IoT 中心库出错