Tag: 缓冲区

WAV到Blob在nodejs

我不知道如何从节点中的wav文件创build一个blob。 我是否像这样使用缓冲区? var blippityBlob = new Buffer(filePathToWave);

为什么我们需要node.js中的缓冲区?

要使用节点在浏览器中显示文件的内容,我首先尝试了这一点: var express = require('express') , fs = require('fs') , app = express() , port = process.env.PORT || 5000; app.use(express.logger()); var data = fs.readFileSync('index.html'); app.get('/', function(req, res){ res.send(data); }); app.listen(port, function(){ console.log('Listenting on ' + port); }); 但是,这并没有如预期的那样工作。 浏览器实际上提供了index.html内容作为文件,我首先必须下载然后在文本编辑器中手动打开。 然后,我尝试使用缓冲区来做同样的事情: var express = require('express') , fs = require('fs') , app = express() , port = […]

节点js的buffer.toString()编码问题

即时通讯parsing使用Windows-1250字符集的网站,在过去的3天,我不能让我的网页显示在相同的编码数据。 我的猜测是,这个问题是在从缓冲区或缓冲区获取数据的地方。 我尝试安装IConv模块,但有一个全新的问题,所以我想知道是否有一种方法来解决这个问题,而不使用iconv。 基本上,即时从网站获得“ANDRIJAŠEVCI”,并在下面的代码后,我得到“ANDRIJA?EVCI” var options2 = { host: 'vred.hzinfra.hr', path: '/hzinfo/default.asp?Category=hzinfo&Service=vred3', headers: {"Accept-Charset": "Windows-1250,utf-8;ISO-8859-3,utf-8;ISO-8859-2,utf-8", "Content-Type": "text/html; charset=ISO-8859-2" } } var request2 = http.request(options2, function (res){ var data = new Buffer(0,'utf-8'); res.on('data', function (chunk) { data = Buffer.concat([data,chunk]); }); res.on('end', function () { console.log(data.toString('utf-8')); }); }); request2.end();

缓冲区长度小于预期

我从一个很长的hexstring创build一个缓冲区,但得到一些大小不匹配(当我试图解密它)。 果然,当我运行下面的代码: var hexData = fs.readFileSync(fileName).toString().trim(); var bufferData = new Buffer(hexData, 'hex'); console.log(Buffer.byteLength(hexData, 'hex')); console.log(bufferData.length); 我的输出是: 232548 三十 为什么整个string没有被加载到缓冲区? 编辑:我注意到我是愚蠢的,应该做的 var bufferData = fs.readFileSync(fileName, 'hex'); 但是那个长度是930194 !

简单的Node.js程序占用了所有的系统内存,并永久地将XMLHttpRequest文件缓冲区写入磁盘

我创build了一个文件共享应用程序来使用我的家庭networking。 这与Google Drive或Dropbox的网页界面类似,但没有任何文件大小上限和安全性。 当通过局域网连接的其他计算机立即传输小文件时,它完美地工作,但是在2GB文件上testing时发生了一些奇怪的事情。 进度条花了大概四个小时才能达到50%,然后我就把它关掉了。 另外,看看有多less内存节点正在使用。 它将从低处启动,最高可达13GB,然后每分钟转储几次。 该文件使用XMLHttpRequest从浏览器界面上传。 这是前端代码的重要组成部分。 var formData = new FormData(); var file = document.getElementById("fileinput").files[0]; formData.append("file", file); var xhr = new XMLHttpRequest(); xhr.open("post", "/fileupload", true); xhr.send(formData); 而在服务器端,有一个使用express的非常简单的处理程序,它使用req.files.file并将其直接传递到fs.writeFile以将其保存到磁盘。 (根据console.log,'req.files.file'似乎是一个缓冲区types,显然它可以直接连接到磁盘上 )。 var express = require("express"); var fileUpload = require("express-fileupload"); var app = express(); app.use(express.static("public")); app.use(fileUpload()); var fs = require("fs"); app.post('/fileupload', function(req, res) { if(req.files […]

node-gyp在关于不兼容types的基本Buffer :: Length操作上崩溃

我已经从NodeJS核心(encryption)取了一段简单的代码: ASSERT_IS_BUFFER(args[0]); ssize_t klen = Buffer::Length(args[0]); 但是,在我自己的本地扩展中编译node-gyp时,出现以下错误: ../deps/v8/include/v8.h:202:5: error: assigning to 'v8::Object *volatile' from incompatible type 'v8::Value *' TYPE_CHECK(T, S); ^ ../deps/v8/include/v8.h:145:37: note: expanded from macro 'TYPE_CHECK' *(static_cast<T* volatile*>(0)) = static_cast<S*>(0); \ ^ ../src/openssljs.cc:300:33: note: in instantiation of function template specialization 'v8::Handle<v8::Object>::Handle<v8::Value>' requested here ssize_t klen = Buffer::Length(args[0]); ^ 任何想法可能是什么原因造成的?

string在节点的TLS套接字连接的另一端连接

我使用tail-always拖尾文件,并在节点中使用TLS套接字将数据传输到另一台服务器。 这是将线路传输到另一台服务器的代码 var client = tls.connect(port,serveraddress, options, function() { tail.on('line', function(data) { console.log(data.toString('utf-8')) client.write(data.toString('utf-8')); }); tail.on('error', function(data) { console.log("error:", data); }); tail.watch(); }); 在另一端服务器侦听端口并抓取文本。 代码是: var server = tls.createServer(options, function(tslsender) { tslsender.on('data', function(data) { console.log(data.toString('utf-8')); }); tslsender.on('close', function() { console.log('closed connection'); }); }); 当一行一次添加到文件中时,程序完美地工作,但是当多行添加到文件时,行被连接在服务器端。我已经确认它们在client.write函数之前没有被连接。 我怎么解决这个问题 ?

与Thrift或Protocol Buffers的双向通信

(对不起我的英语不好) 可以build立一个应用程序(2),实现进程之间的双向通信。 我知道两个“框架”来沟通不同的过程(在不同的语言)节俭和协议缓冲区。 我知道,节俭在客户端/服务器模式下工作,所以如果我想要双向通信,我需要build立双方/进程像客户端和服务器的时间。 客户端/服务器<————————->客户端/服务器 我不知道这个方法是否正确。 但是..我找不到有关使用协议缓冲区的信息。 这可能吗? 我有一个C ++进程和一个Node.js(Javascript)应用程序.. C ++进程发送一个通知到Node.js应用程序(这工作很好,我使用节俭testing).. 另一方面,用户与Node.js应用程序进行交互..在某些情况下,node.js应用程序需要通知de C ++进程..所以我需要双向通信.. 任何想法? 提前致谢

将resemble.js写入文件的缓冲区响应

我使用节点类似js来比较两个PNG图像。 比较发生没有问题,我得到了一个成功/相关的回应,但我有麻烦输出图像差异。 var express = require('express'); var fs = require('fs'); var resemble = require('node-resemble-js'); var router = express.Router(); router.get('/compare', function(req, res, next) { compareImages(res); }); var compareImages = function (res) { resemble.outputSettings({ largeImageThreshold: 0 }); var diff = resemble('1.png') .compareTo('2.png') .ignoreColors() .onComplete(function(data){ console.log(data); var png = data.getDiffImage(); fs.writeFile('diff.png', png.data, null, function (err) { if (err) […]

在JavaScript或节点中将Blob数据转换为Raw缓冲区

我正在使用生成PDF并将其保存到本地文件系统的插件jsPDF 。 现在在jsPDF.js中,有一些代码可以生成blob格式的pdf数据: var blob = new Blob([array], {type: "application/pdf"}); 并进一步将blob数据保存到本地文件系统。 现在,而不是保存我需要使用插件节点打印机打印PDF。 以下是一些示例代码 var fs = require('fs'), var dataToPrinter; fs.readFile('/home/ubuntu/test.pdf', function(err, data){ dataToPrinter = data; } var printer = require("../lib"); printer.printDirect({ data: dataToPrinter, printer:'Deskjet_3540', type: 'PDF', success: function(id) { console.log('printed with id ' + id); }, error: function(err) { console.error('error on printing: ' + err); […]