Tag: stream

使用node.js在stream中进行asynchronous调用的问题

我在我的stream中进行asynchronous调用时遇到问题。 它看起来像是因为某种原因,如果我有三个stream,中间stream进行asynchronous调用,最终的stream永远不会收到“结束”事件。 我可以用一些简单的stream和超时模拟行为。 var options = {} var streamOne = function(){ return through(function write(row){ this.emit('data', row) }) } var streamTwo = function(){ return through(function write(row){ this.pause() var that = this; setTimeout(function(){ that.emit('data', row) that.resume() }, 1000) }) } options.streams = [new streamOne(), new streamTwo()] 然后我通过这个事件stream 。 var streams = [] //Pass stream one and stream […]

build议工作stream程和工具使用node.js

我正在开发一些非常简单的node.js库用于学习目的。 这是关于像HexToBase64这样的function。 理想情况下,我想在一个文本编辑器中编程,并在节点repl上播放,让代码在每次保存时自动重新加载到repl上。 任何模块或工具交互式地玩节点?

node.js – 来自多个调用的streamhttp响应

在我的快速应用程序中,我想对API进行多个调用,并将每个响应都传回客户端,而不是等待所有响应。 例如,如果我请求在旧金山,伯克利和帕洛阿尔托同时进餐,我不应该等待所有的回复,并且能够在他们可用的时候stream出。 我将如何做到这一点?

用FS转换文件到数组

我有一个简单的“en.txt” "TITLE" => "Amazing title of my page" "COPYRIGHT" => "Copyright my site" "BLABLA" => "A amazing sentence" 我想用FS转换这个数组为nodeJS。 谢谢你的帮助。

在NodeJS中读取连续的二进制数据stream

我正在尝试从Node中的stream(从subprocess创build)中读取大量的二进制数据。 我正在使用stdout.on('data')事件来获取数据。 无论我search多less,我似乎无法find传入callback的参数的任何文档。 typeof(data)表示这是一个对象,但从我所知道的来看,它只是一个数组。 这是一个数组? 还是一个string? 无论如何,我怎样才能得到一个字节数组? 这是我的代码: var childProc = require('child_process'), spawn = childProc.spawn; // /home/ubuntu/bin/ffmpeg -f video4linux2 -r 1 -s 640×480 -i /dev/video0 -c:v rawvideo -f rawvideo -pix_fmt rgb8 – var streamProc = spawn('/home/ubuntu/bin/ffmpeg', [ '-f', 'video4linux2', '-r', '1', '-s', '640×480', '-i', '/dev/video0', '-c:v', 'rawvideo', '-f', 'rawvideo', '-pix_fmt', 'rgb24', '-' ]); streamProc.stdout.on('data', function(data) […]

node.js mongodb – collection.find()。toArray(callback)返回空

mydocuments.find({})。toArray在我的代码下面返回空。 我可以看到发布的几个解决scheme,但由于我使用的是MongoClient.connect,所以不能应用它们。 任何援助将不胜感激。 var MONGOHQ_URL="mongodb://harishvc:supersecretreally@something.com:12345/abcd"; var mongodb = require('mongodb'); MongoClient = mongodb.MongoClient; var async = require('async'); …. async.series([ function (callback) { console.log("start: db connection"); MongoClient.connect(MONGOHQ_URL, { server: { auto_reconnect: true } }, function(err, db2) { if (err) {return callback(err, "connect error");} db = db2; console.log("end: db connection"); callback(null,"end: db connection"); }); }, function (callback) { […]

改变一个小号的stream,如何得到http.Response中的内容长度标题?

我有一个nodejs http服务器运行,我想改变特定网站上的内容(我自己的私人广告拦截器的种类)。 我决定用小号做这个。 现在的问题是,当小号注入新的内容并将其传递给http响应(http.IncomingMessage)时,标头['content-length']值不再有效。 一些浏览器似乎不关心(W7上的Chrome / Firefox),其他浏览器立即崩溃(iPad上的Safari)。 我尝试删除内容长度标题,结果类似(Safari永远等待)。 如何在切换内容后设置响应权限的内容长度? 我发现和谐 ,但我只需要这最后一点,所以和谐觉得像太多的开销。 或者这不是微不足道的?

Nodejs Fstreampipe道多个文件时触发多个“结束”callback

问题:我试图找出一种方法来将多个文件传输到fstream.Reader时只触发一个“结束”事件。 平台:节点0.6.21 有没有更好的方法来处理这个问题? var r = fstream.Reader({ path: source, // source is a directory with two files. type: 'File' }).pipe(zlib.createGunzip()).pipe(tar.Extract({ strip: strip, path: destination })); r.on('end', function() { // this is firing everytime a file is extracted. Ideally, I would only fire one 'end' event. if (typeof callback === 'function') { return callback(null); } }); […]

(ab)使用node.js作为超级快速轮询和ajax服务器来更新数据库(类似于Google Spreadsheet方法)

我希望我的头衔不要太长 简单的问题/标题: 我应该使用什么设置(Ab)使用node.js作为超级快速轮询和ajax服务器,以便立即更新和仔细检查客户端/服务器端更改? (类似于Google处理多人在特定电子表格中更新多个东西的方法)。 我还没有使用node.js,但在过去做了一些阅读和观看video,并猜测这是(我目前)做我要做的事的正确select(参见标题/上面)。 所以把它想象成我想要build造的房子,但是需要最稳定的基地,这个基地在把房子变成一座整个城堡后不会破坏。 所以下面的代码示例: var http = require('http'); http.createServer(function (req, res) { console.log('request received'); }).listen(9000); 关心'http':是否有一个'spdy'甚至更好的参数,我可以使用它来实现甚至比Google Spreadsheet还要好的构build(可能)更好的目标? 假设我的服务器真棒,等等…. 谢谢 诺伯特

NodeJS – 使用stream

我正在尝试在nodejs中构build一个API,这个API将stream式处理针对Vertica DB执行的查询的输出。 nodejs中的vertica db驱动程序暴露了我正在使用的未缓冲的查询接口。 有关更多详细信息,请参阅: https : //github.com/wvanbergen/node-vertica 以下是我的代码: var vertica = require('vertica'); var Readable = require('stream').Readable; var rs = new Readable; var conn = vertica.connect( { host: 'hostname', user: 'user', password: 'password', database: 'verticadb' }); var q = conn.query('select * from table'); q.on('row', function(row) { rs.push(row.join(',') + "\n"); }); q.on('end', function(status) { rs.push(null); rs.pipe(process.stdout); […]