Tag: 文件io

正在复制文件

我有一个Node.js程序周期性地通过目录中的video文件循环。 如果添加或删除文件,程序将更新数据库以反映此更改。 添加文件时,使用FFmpeg生成缩略图。 当我尝试在当前正在复制到目录的文件上运行FFmpeg时遇到问题。 由于文件不完整,FFmpeg无法生成缩略图。 如果我知道一个文件被复制的时候,我可以忽略它,下一次扫描该目录的时候就会被拾取。 如何确定当前是否正在复制文件,或者如何循环目录而忽略当前正在复制的文件?

NodeJS:需要习惯用法:读取目录中的文件,连接,转换,写入

我正在尝试在Node中编写一个内容manglement程序。 我是一个老的Ruby / Perl / Shell多年的手,我似乎无法得到在这些语言中工作的简单代码在Node中看起来类似,简单。 任务 :find所有的*.md文件,读取它们(按ls顺序),转换它们,用括号注释和页脚注释括起来。 这些文件按顺序有一个Markdown,在汇编和转换时,是一个合理的HTML文档。 这是一个shell实现: echo '<!– Generate at:' $(date) ' –>' $(ls *.md |xargs cat|markdown)'<!– Copyright Mumble-demo Inc. –>' 生成所需的HTML: <!– Generate at: Tue Jun 6 08:25:59 EDT 2017 –> <h1>This is a Markdown File</h1> <h2>Heading 1</h2> <p>Inside of markdown we can create many interesting items</p> <ul> <li>such</li> <li>as</li> […]

用Node.js删除前15k行的文本文件

我有一个大的文本日志文件(大约20MB)。 我想删除第一个15000行左右。 我怎么能在Node.js中做到这一点?

node.js / libuv如何使用reactor模式支持asynchronousio

libuv用于处理IO的反应器模式是通过devise同步的,但是libuv支持asynchronousIO。 这怎么可能? libuv是否扩展了反应堆的devise以支持asynchronousio? 使用multithreading/事件循环是否有助于实现这一点?

如何与来自Node.js进程的C ++程序inputstream进行交互?

我是Node.js的新手,但对C ++和Javascript并不陌生。 我将使用节点做一个C ++工具,但是我面临一个问题,当C ++程序调用std::cin ,我不知道如何将数据从节点进程发送到C ++进程。 看到这个代码(main.exe): int main() { int a, b, c; cout << "Enter 3 numbers: "; cin >> a >> b >> c; cout << "Total: " << (a + b + c) << endl; return 0; } 在我的JavaScript代码中,我使用child_process.spawn来调用main.exe,我知道我可以使用事件'data'来获取消息"Enter 3 numbers: " ,但我怎么让节点自动inputa , b和c终于完成main.exe了? 更新: 我的Javascript代码(我不知道哪个事件可以用来写数据,所以我使用'data' ) var spawn […]

通过letsencrypt进行https安装后,Nodejs聊天程序'io未定义'错误

我在我的网站上设置了一个nodejs聊天程序。 然后,当我使用letsencrypt将网站从http移动到https时,聊天程序停止工作。 这里是服务器和客户端: https://synodins.com/apps/chat/server.js https://synodins.com/apps/chat/client.html 并直接阅读客户端脚本: https://synodins.com/apps/chat/client.txt 问题是,正如你可以看到在客户端检查元素,是我得到错误: ReferenceError:io没有定义 我已经search了这个错误,发现: socket.io – ReferenceError:io没有定义 但是我已经按照他在答案中提出的方式来做事了。 我不知道是什么问题,虽然我怀疑在客户端加载的socket.io模块有问题。 有趣的是,我可以在本地运行聊天没有问题,但是当我尝试在服务器上运行它,我得到这个错误。 有谁可以看到问题是什么?

Nodejs如何处理多个并行请求,以防止阻塞进程

我正在做一个小的项目,在这个项目中,一个用户向我的服务器发出一个http请求,然后我得到并处理来自三个不同服务器的一些数据,然后把总结的结果返回给客户端。 一切工作正常接受两个以上的客户端同时发出请求时,所有的客户端都无法获得响应,并面临超时错误。 如何处理这件事情。 提前致谢

你如何编写非阻塞模块?

从完全不同的背景来看,Node.js的工作方式对我来说仍然是一个非常陌生的概念。 我正在掌握在你的函数中使用callback的概念 ,但是当我试图支持模块化开发,并因此更好地扩展时,实际上很难实现这一点。 例如,我将如何返回一个函数的结果回到我的代码,或者说,而不是阻止访问? 我一直在阅读,但是我不能把这个事情做完,因为每个人都给我一个不同的答案。 以一个日志function,例如: exports.log = function (req, res, type) { // do stuff here } 提前致谢。

为什么当我在IO操作上对它们进行基准testing时,PHP会比Node.js更好呢?

我正在使用PHP和Node.js上的apache基准testing工具,分别是端口80和端口8000。 下面的节点基准testing命令,在PHP上运行testing时交换端口: ab -n 100 -c 100 http://localhost:8000/ 我在程序中所做的只是读取一个10MB的文本文件,然后将其发送回客户端。 令我惊讶的是,PHP基准testing需要大约6秒钟,而Node.js则在13秒钟之后。 这是文本文件: https://github.com/jamesward/play-load-tests/blob/master/public/10mb.txt 这是每个代码: Node.js的 var http = require("http"); var fs = require("fs"); var s = http.createServer(function(req, res) { res.writeHead(200, {"content-type": "text/plain"}); fs.readFile("./10mb.txt", "utf8", function(err, data) { res.end(data); }); }); s.listen(8000); PHP <?php echo file_get_contents("./10mb.txt"); 我在节点代码中做错了什么? 否则我很困惑,Node的主要卖点之一是OI操作速度很快。 我错过了什么?

承诺性能问题。 读文件太慢了

我使用承诺读取硬盘驱动器中的10000多个文件,并在确切的位置find一个数字。 我使用glob来返回文件名,并find每个文件我运行方法readFile(readFile返回作为promisse)。 当所有的文件被处理时,我可以继续我的工作。 function readFilesGlob(globPath,options,progressCallback){ return new Promise(function (fulfill, reject){ glob(globPath, options, function (err, files) { var readPromisses=[]; for(var id in files){ readPromisses.push(readFile(files[id])); } Promise.all(readPromisses).then( function(filesContents){ fulfill(filesContents) } ); }); }); } 所有的承诺都只在完成时才完成,无法显示处理进度 function readFilesGlob(globPath,options,progressCallback){ return new Promise(function (fulfill, reject){ glob(globPath, options, function (err, files) { var readPromisses=[]; for(var id in files){ readFile(files[id]).then(function(data){ //everything shows […]