Articles of 文件io

Node.js发送服务器input到客户端。 内存泄漏警告。 我的错误是什么? 那么node.js如何运行代码呢?

服务器: var net = require('net'); var stdin = process.openStdin(); var client_list = []; var server = net.createServer(function(connection) { //console.log('client connected'); connection.on('error', function(e){ if(e.code == 'ECONNRESET'){ console.log('Client dissconeccted'); } }); //connection.write('Hello World!\r\n'); stdin.addListener("data", function(d) { // note: d is an object, and when converted to a string it will // end with a linefeed. so we […]

为什么节点产生了几个线程?

我列出了我的节点服务器的线程,以下是标准输出的响应: $ ps -e -T | grep 14209 14209 14209 ? 00:10:08 node 14209 14415 ? 00:00:00 V8 WorkerThread 14209 14416 ? 00:00:00 V8 WorkerThread 14209 14417 ? 00:00:00 V8 WorkerThread 14209 14418 ? 00:00:00 V8 WorkerThread 14209 14419 ? 00:00:00 node 14209 15894 ? 00:00:00 node 14209 15895 ? 00:00:00 node 14209 15896 ? […]

写入然后从文件中读取TypeBuffer会产生意想不到的结果

运行这个代码之后: var arr = new Uint32Array(16); for (var i=0; i<16; ++i) arr[i] = i; fs.writeFileSync("arr",new Uint8Array(arr).buffer); console.log([].slice.call(new Uint32Array(fs.readFileSync("arr")))); 预期产出是: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 ] 但是,它会产生这个输出: [ 91, 111, 98, 106, 101, 99, 116, 32, 65, 114, 114, 97, 121, 66, 117, 102, […]

节点的readFile()是否使用一个缓冲区来分配所有的文件大小?

我对Node和文件系统stream的关注很新。 我想现在,如果readFile函数可能读取文件统计信息,请获取大小并创build一个分配了所有文件大小的单个缓冲区。 或换句话说:我知道它加载整个文件,好的。 但是,它是通过将文件内部分割到更多缓冲区还是仅使用一个较大的缓冲区来实现的? 根据使用的方法,它有不同的内存使用/泄漏的影响。

触摸文件,然后在Node中写入

在写入之前如何触摸文件? 尝试 fs = require 'fs' os = require 'os' path = require 'path' json_filepath = path.join os.tempdir(), 'cache', 'foo.json' module.exports = (cb) -> fs.open json_filepath, 'w', 438, (err) -> # Touch, also tried with node-touch return cb err if err? fs.writeFile json_filepath, {foo: 'bar'}, {}, (err) -> #console.error 'Error writing cache: ', err cb […]

如何从Duktape中运行的JavaScript代码读取文件?

我试图将一些代码从Node.js移植到Duktape – Duktape的function是否等同于Node的fs.readFileSync ?

Socket.IO:用大量波动的数据更新客户端的最有效的方法

想象一下Agar.io. 与聊天应用程序不同,随着玩家在地图上移动,用户(或玩家)和其他环境对象的列表将不断变化。 那是因为每个客户端都不能收到关于每个对象的更新,因为地图太大,滞后太多。 那么使用Socket.IO更新客户端的下列哪种方法会更高效: 发送一个包含数据的环境数组,replace每个客户端上的本地数组。 当对象在播放器视野中出现/消失时发送单个消息,并用对象修改本地数组对象。 如果有比上述两种更好的方法,请概述一下。

当文件被写入时如何处理readFile

这可能有点模糊,但我有一个节点的应用程序,写了一个小的计数器后,一堆文件: Fs.readFile( Blender.LOG , function(error, data) { //read the log file if( error ) { throw error; } counter = parseInt( data ) + 1; //add this blend if(!isNaN( counter )) { //check if the number is a number Fs.writeFile( Blender.LOG, counter, function(error) { if( error ) { throw error; } Blender.debugging( 'counter: added', 'report' […]

nodejs套接字编程 – 发送数据长度

我有一个服务器监听特定的端口,并期望命令以下方式 – 前四个字节应该包含命令的长度,其余的字节包含实际的命令。 例如: 如果我想发送的命令是{cmd:"EL",ptno:1234} ,那么我发送的前四个字节应该以big-endian符号包含数字20,因为命令长度是20,因为命令是UTF -8格式。 我发送的剩余字节将包含命令。 我想知道如何在nodejs中做到这一点。 另外,当服务器发回数据时,我需要读取前四个字节并确定数据长度,并相应地读取套接字inputstream。 请帮忙。

如何在Node.js中使用readline将所有input行都放入数组中?

我想创build一个方便的函数,为CodeAbbey的目的做这样的事情: var rl = readline.createInterface({ input: process.stdin, output: process.stdout }); var lines = []; rl.on('line', (line) => { lines.push(line); }); return lines; 但是,由于readline作为一个事件处理程序的function,当然我只能返回一个空数组。 如何在readline中执行期望的行为? 或者我使用其他一些图书馆? 我宁愿只使用“默认”组件,但如果我必须使用别的东西,我会。