Tag: stream

如何链接写入stream,立即与读取stream在Node.js 0.10?

以下行将从指定的urlvariables下载一个图像文件: var filename = path.join(__dirname, url.replace(/^.*[\\\/]/, '')); request(url).pipe(fs.createWriteStream(filename)); 这些行将会把这个图像保存到MongoDB GridFS中: var gfs = Grid(mongoose.connection.db, mongoose.mongo); var writestream = gfs.createWriteStream({ filename: filename }); fs.createReadStream(filename).pipe(writestream); 像这样链接pipe抛出错误:500不能pipe。 不可pipe道。 request(url).pipe(fs.createWriteStream(filename)).pipe(writestream); 发生这种情况是因为图像文件尚未准备好被读取,对吗? 我应该怎么做才能解决这个问题?错误:500不能pipe道。 不可pipe道。 使用以下内容: Node.js 0.10.10 , mongoose , request和gridfs-stream库。

在提供期间,不能在stream浪汉上安装NPM

在Vagrant Shell规定期间,我尝试在Debian Wheezy上安装NodeJS和NPM。 脚本是(从指南https://github.com/joyent/node/wiki/backports.debian.org ): sudo echo "deb http://ftp.us.debian.org/debian wheezy-backports main" >> /etc/apt/sources.list sudo apt-get update sudo apt-get install -y nodejs-legacy curl https://npmjs.org/install.sh | sudo sh 节点设置为魅力,但NPM安装失败: 斯德哥尔从命令: stdin: is not a tty dpkg-preconfigure: unable to re-open stdin: No such file or directory % Total % Received % Xferd Average Speed Time Time Time Current […]

用ws和websocket-stream在node.js中stream数据

我试图使用websockets将数据从服务器stream式传输到客户端 – 特别是ws和websocketstream。 然而,这个stream似乎太早closures了,我只收到两块值得的数据。 这是一个简单的例子。 我有一台服务器: var WebSocketServer = require('ws').Server; var websocketStream = require('websocket-stream'); var wss = new WebSocketServer({port: 8098}); var fs = require('fs'); var util = require('util'); wss.on('connection', function connect(ws) { var stream = websocketStream(ws); var rs = fs.createReadStream('foo.big'); rs.pipe(stream); }); 和一个使用pipe()将foo.big连接到本地文件的客户端: var fs = require('fs'); var util = require('util'); var websocket = require('websocket-stream'); […]

Express.js – 如何将base64string下载为PDF文件?

我有PDF文件编码为base64string。 如何以.pdf格式将此string下载到浏览器中? 我已经试过了: res.set('Content-Disposition', 'attachment; filename="filename.pdf"'); res.set('Content-Type', 'application/pdf'); res.write(fileBase64String, 'base64');

强制Node.js刷新写入subprocess

我产生了一个像这样的subprocess: var child = require('child_process'); var proc = child.spawn('python', ['my_script.py', '-p', 'example']); 我还设置了一些数据处理: proc.stdin.setEncoding('utf8'); proc.stdout.setEncoding('utf8'); proc.stderr.setEncoding('utf8'); proc.stdout.on('data', function (data) { console.log('out: ' + data); }); proc.stderr.on('data', function (data) { console.log('err: ' + data); }); proc.on('close', function (code) { console.log('subprocess exited with status ' + code); proc.stdin.end(); }); 我的Python脚本从stdin读取行,并为每行执行一些操作,并打印到stdout 。 它在shell中工作正常(我写一行,我立即得到输出),但是当我在Node中这样做: for (var i = 0; […]

在pipe道未启动后,nodejsstream完成callback

pdf文件保存后,我需要做一些家务: docx2pdf(doc, function (pdf) { console.log("saving file"); var pdfFile = fs.createWriteStream("./test2.pdf"); pdf.on('finish',function(){ console.log("Finished"); process.exit(); }).pipe(pdfFile); pdf.end(); console.log("After save"); }, true, true); 但第二个嵌套函数中的代码永远不会启动。 pdf是来自pdfkit库的对象。 我该如何解决? UPD:这种方法也行不通: docx2pdf(doc, function (pdf) { console.log("saving file"); var pdfFile = fs.createWriteStream("./test2.pdf"); pdfFile.on('finish',function(){ console.log("Finished"); process.exit(); }); pdf.pipe(pdfFile); //pdf.end(); console.log("After save"); }, true, true);

Streaming-s3不能正常升级文件

我正在使用nodejs将file upload到aws服务器。 并发现文件大小不正确。 我得到2.1KB。 这是我的代码 var uploadFile = function (fileReadStream, awsHeader, cb) { //set options for the streaming module var options = { concurrentParts: 2, waitTime: 20000, retries: 2, maxPartSize: 10 * 1024 * 1024 }; //call stream function to upload the file to s3 var uploader = new streamingS3(fileReadStream, config.aws.accessKey, config.aws.secretKey, awsHeader, options); //start […]

通过nodejs服务器+ socket.io从mp3文件同步stream式传输音乐

所以我有我的服务器上的MP3文件。 而且我希望所有访问该url的客户都能同步收听该音乐。 那是。 让我们说文件播放6分钟。 我在上午10点开始这首歌 上午10:03发出的请求应该从歌曲的第3分钟开始收听。 我所有的客户都应该同步听歌。 我怎样才能实现这与nodejs和socket.io

在Node.js中pipe理/stream式处理JavaScript对象

我试图把我的头围绕Node.jsstream,而不是我对JavaScript和节点很新,我真正得到的最后几种语言是Perl和PHP:-D 我读过Buffer / Streams文档@ nodejs.org,观看了James Halliday @ LXJS ,阅读了他的stream手册和Thorsten Lorenz 事件stream文章 。 我开始了解基础知识:) 我处理在RDF中序列化的数据(既不是JSON也不是XML)。 我设法获取数据(通过请求的实际代码),并使用rdfstore模块parsing成一个JS对象。 到目前为止,我这样做: s.createReadStream('myRDFdata.ttl').pipe(serialize()).pipe(process.stdout); 其中serialize()执行parsing序列化代码的工作。 我through模块使用接口到stream。 现在我有更多的方法(不是真正的函数声明,但我希望你明白了): getRecipe(parsedRDF) – >将parsing的RDF(作为一个JavaScript对象)告诉我如何使用它 createMeal(parsedRDF, recipe) – >从上面获取parsing的RDF和配方,并创build一个新的RDF对象 这个新对象需要序列化并发送到浏览器 (在现实世界中, getRecipe将不得不在浏览器中进行用户交互) 我喜欢通过pipe道链接在一起的想法,以便稍后增强代码时具有更高的灵活性。 但是我不想每次都把它序列化为一个RDF序列化,而只是发送JS对象。 根据我在文档中读到的内容,我可以使用stringify模块来获取每一步中的string,以便将其传送到下一步。 但: 这实际上是有道理的吗? 在我添加不必要的开销或这是可以忽略的? 我没有看到我怎么可以将parsedRDF赋予这两个方法的getRecipe必须先被调用的依赖项,输出也是createMealinput。 有模块可以帮助我吗? 这可能是我必须要求用户select最终的食谱,所以我可能需要发送东西到浏览器那里得到最终的答案。 当pipe道“等待”时,我可以在套接字上做这样的事吗? 我希望这显示我想要做什么,如果不是,我会尝试给更多的细节/改变。 更新:睡了之后,我想出了更多的东西: 如果有官方的序列化格式,将RDF等格式序列化为非标准格式可能没有意义。 所以,而不是使用stringify我会简单地通过一个正式的RDF序列化之间的步骤 这确实意味着我parsing/序列化每个步骤中的对象,这肯定会增加开销。 问题是我关心吗? 我可以扩展RDF模块,我使用从streamparsing和序列化到一个 我可以通过简单地将getRecipe一些信息添加到parseRDF来解决getRecipe和createMeal之间的依赖问题,这可以通过RDF轻松完成,而不会破坏原始数据模型。 但我仍然有兴趣知道我是否可以用pipe道处理这样的依赖

无效的非string/缓冲区块Node.js

我在大学学习Node.js,这是我第一次学习这种编程语言。 聊天服务器的尝试有一些错误。 当我尝试连接一个客户端与服务器,连接立即closures,并出现错误“无效的非string/缓冲区块”。 我上传了一些截图,你可以检查什么是错的,因为我一直在想这个问题,而且我没有find任何解决方法。 点击这里查看我的Git bash 我在JavaScript中的代码: var net = require('net'); var s = require var sockets = []; var nombres = []; var nombresUsados = []; console.log("Se ha iniciado el sevidor"); var server = net.createServer(function(socket){ socket.push(socket); nombres.push("Cliente:" + sockets.indexOf(socket)); nombresUsados.push("Cliente:" + socket.indexOf(socket)); console.log("Cliente aceptado, nick:" + nombres[sockets.indexOf(socket)]); socket.write("Bienvenido" + nombres[sockets.indexOf(socket)]+ "\n"); ![enter image description […]