Tag: stream

使用stream浏览器应用程序

我想为浏览器应用程序使用Flow(Facebook的静态types检查器)。 如何让Flow跟随给定的.js文件正在使用的其他.js文件? 在Node.js中,使用require函数使Flow跟随其他模块并检查types错误,并且我也希望为浏览器应用程序提供类似的function。 假设我有一个使用模块Student.js的Classroom.js文件。 当我运行Flow时,它会抛出错误identifier Student Unknown global name 。

如何在node.js中实现正确处理背压的stream?

我不能为了我的生活弄清楚如何实现一个正确处理背压的stream 。 你应该永远不要使用暂停和恢复? 我有这个实现我试图得到正确的工作: var StreamPeeker = exports.StreamPeeker = function(myStream, callback) { stream.Readable.call(this, {highWaterMark: highWaterMark}) this.stream = myStream myStream.on('readable', function() { var data = myStream.read(5000) //process.stdout.write("Eff: "+data) if(data !== null) { if(!this.push(data)) { process.stdout.write("Pause") this.pause() } callback(data) } }.bind(this)) myStream.on('end', function() { this.push(null) }.bind(this)) } util.inherits(StreamPeeker, stream.Readable) StreamPeeker.prototype._read = function() { process.stdout.write("resume") //this.resume() // putting […]

为什么这个streamfunction会导致错误?

我已经编写了一个函数,将input的参数logging到控制台。 function sconsole() { var stream = new Stream.Transform({objectMode: true}), foo = [].slice.call(arguments); stream._transform = function (data, encoding, callback) { console.log.apply(null, foo); callback(null, data); }; return stream; } 使用示例: stream .pipe(sconsole('foo')) .pipe(…); 但是,当用于一系列pipe道调用的最终位置时,会导致以下错误: TypeError: Invalid non-string/buffer chunk 为什么?

使用XMLHttpRequest进行内存高效的消息块处理

我有一个XMLHttpRequest与一个progress事件处理程序,请求一个分块的页面,不断发送添加消息块。 如果我没有设置responseType ,我可以在每个progress事件中访问XMLHttpRequest的response属性,并处理额外的消息块。 这种方法的问题在于浏览器必须将整个响应保存在内存中,并且由于这种内存浪费,浏览器最终会崩溃。 所以,我尝试了一个arraybuffer的responseType ,希望我可以分割缓冲区,以防止以前的内存浪费。 不幸的是, progress事件处理程序在这一点上不再能够读取XMLHttpRequest的response属性。 progress事件的事件参数也不包含缓冲区。 这是一个简短的,自包含的例子,我尝试了这个(这是为node.js写的): var http = require('http'); // — The server. http.createServer(function(req, res) { if (req.url === '/stream') return serverStream(res); serverMain(res); }).listen(3000); // — The server functions to send a HTML page with the client code, or a stream. function serverMain(res) { res.writeHead(200, {'Content-Type': 'text/html'}); res.write('<html><body>Hello World</body><script>'); res.end(client.toString() […]

如何检测客户端closures连接期间通过http在pipe道stream节点?

我使用expressjs(nodejs)应用程序将数据从服务器传输到客户端。 我做这样的事情; // let contentType and filename be correctly defined in context function(req,res){ res.setHeader('Content-Type',contentType); res.setHeader('Content-Disposition','attachment; filename='+filename); require('fs').createReadStream('/path/file').pipe(res); } 我想知道客户端何时无法下载文件,但我不知道如何继续。

Ansible和npm安装失败,并显示“rc -9”。 这是什么意思?

我们有一个stream浪虚拟的盒子,想让Ansible做一些安装工作。 到目前为止,设置stream浪汉和ssh的东西的作品。 克隆git-repository – 工作! 其他任务testing…工作! 但是当我们尝试安装npm -dependencies时遇到了一个问题。 我们得到的是一个神秘的错误信息,指示错误代码“rc = -9”。 当通过ssh在同一个虚拟盒子上运行“ npm install ”时,一切都如同轻而易举。 有谁知道,这里可能是什么问题? 或者给我们一个提示什么错误-9可能是什么? 我们在这里黑暗中敲打着… Ansible失败并返回: failed: [192.168.10.15] => {"cmd": "/usr/bin/npm install", "failed": true, "rc": -9} Ansible-playbook — – hosts: build remote_user: vagrant sudo: yes sudo_user: root vars: working_dir: /home/vagrant/build tasks: – name: remove old working dir file: path={{ working_dir }} state=absent […]

在NodeJS中结束之前closuresHttp响应stream

我正在使用nodejs中的请求模块发出请求,我正在收到stream式响应。 这个响应stream被传送到csvparsing器并将logging填充到一个数组中。 一旦我得到预设的logging数,我想结束csvparsing并closures响应stream。 如何正确清理响应stream 这是伪代码 var stream = request.get(url); stream.pipe(csvParser); var count = 15; csvParser.on("readable",function(){ while(record = csvParser.read()){ if(records.length<count){ records.push(record); } else { csvParser.end(); //stream.close(); //stream.unpipe(); // stream.destroy(); } } }); csvParser.on("error",function(err){ console.log("Error",err.message); }) csvParser.on("finish",function(){ //console.log("records",records); console.log("done"); }) 当我尝试stream.close(),这是说未定义的方法。 什么是清理它的正确方法..?

如何configurationWebStorm以指向VM节点解释器

适用于WebStorm的JetBrains Vagrant插件可以很好地处理VM的启动和停止。 我的项目节点解释器在虚拟机上configuration。 在WebStorm中configuration项目设置时,只有本地节点解释器可用。 我可以ssh进入虚拟机,并像命令行一样从命令行使用节点项目,但我真的想集成IDE,否则它只是一个testing编辑器/terminal复用器,而实际上我不需要它。 有什么我失踪? 在其他的Jetbrains产品上,即PyCharm,用户可以从一个stream浪vm中selectpython解释器,但是WebStorm似乎没有这个function。

NodeJSstreamparsing并写入json行以确保Promise结果

我有一个大的json文件,看起来像这样: [ {"name": "item1"}, {"name": "item2"}, {"name": "item3"} ] 我想stream这个文件(目前为止非常简单),每一行在parsing/拒绝调用时都会运行一个asynchronous函数(返回一个promise)来编辑这一行。 input文件的结果可能是: [ {"name": "item1", "response": 200}, {"name": "item2", "response": 404}, {"name": "item3"} // not processed yet ] 我不想创build另一个文件,我想在飞行中编辑相同的文件(如果可能!)。 谢谢 :)

我应该streamhtml文件,而不是只渲染?

我正在试验node.js / express.js,并认为pipe道html文件的请求,而不是只是渲染。 我希望能够获得更好的性能,并且html文件将会首次加载更快。 //instead of res.render('form',{title:'Login',userField:'Username',passField:'Password',photo: photo}); //I do var path = 'views/form.ejs'; var stream = fs.createReadStream(path); stream.pipe(res); This is actually about 10ms faster, even with a small file (385 bytes). I am developing so my files are still really 小。 我发现唯一的答案是,我不能在响应像userFieldembeddedEJS数据:'用户名' 1-我在这种情况下使用pipe道吗? 2-有没有其他的优点和缺点? 3-我是否过度使用它? 我应该只使用渲染,因为差异很小,或与缓慢连接 大的HTML,pipe道实际上节省了一天? 谢谢