Tag: stream

在Node.js / Gulp中重用streampipe道/子pipe道

从stream / gulp / vinyl开始,并尝试清理/使用stream-combiner2干掉我的gulp文件。 到目前为止,它工作得很好,除了现在我需要在另一个pipe道(简化的psuedocode-ish)中运行一个子pipe道: var logger = require("gulp-logger"), HTMLPrettify = require("gulp-html-prettify"), combiner = require("stream-combiner2"), through = require("through2"), tap = require("gulp-tap"), _ = require("lodash"); preprocessPipeline = function() { return combiner.obj(getFrontMatter(), processTemplates()); }; gulp.task("build", ["clean"], function() { return gulp.src("in/**/*.html") .pipe(preprocessPipeline()) .pipe(tap(function(file) { var data, dataSources; dataSources = getDataSources(file); data = {}; /* PAUSE MAIN PIPELINE […]

npm安装在Vagrant框中

我有一个相当香草的Vagrant盒子configuration使用Puphpet与节点安装。 但是,当我ssh进入框,并尝试npm install我似乎有一堆的权限问题。 即使与sudo运行似乎并不奏效 跑进去 npm ERR! tar.unpack untar error /home/vagrant/.npm/gulp-autoprefixer/2.1.0/package.tgz npm ERR! tar.unpack untar error /home/vagrant/.npm/gulp-concat/2.5.2/package.tgz npm ERR! tar.unpack untar error /home/vagrant/.npm/gulp-livereload/3.8.0/package.tgz npm ERR! tar.unpack untar error /home/vagrant/.npm/path/0.11.14/package.tgz npm ERR! tar.unpack untar error /home/vagrant/.npm/gulp-notify/2.2.0/package.tgz npm ERR! tar.unpack untar error /home/vagrant/.npm/gulp-compass/2.0.3/package.tgz npm ERR! tar.unpack untar error /home/vagrant/.npm/gulp-minify-css/0.4.6/package.tgz npm ERR! tar.unpack untar error /home/vagrant/.npm/gulp-plumber/0.6.6/package.tgz npm ERR! […]

我应该用什么来代替readStream.push('')

我正在尝试实现可读stream的._read函数,当._read被调用并且没有数据时会发生问题,文档说我可以push('')直到更多的数据到来,而且我应该只return false当stream将不会有更多的数据时为return false 。 https://nodejs.org/api/stream.html#stream_readable_read_size_1 但它也说,如果我需要这样做,那么我的devise就会出现一些错误。 https://nodejs.org/api/stream.html#stream_stream_push 但我找不到替代scheme。 码: var http = require('http'); var https = require('https'); var Readable = require('stream').Readable; var router = require('express').Router(); var buffer = []; router.post('/', function(clientRequest, clientResponse) { var delayedMSStream = new Readable; delayedMSStream._read = function() { var a=buffer.shift(); if(typeof a === 'undefined'){ this.push(''); return true; } else { this.push(a); […]

通过SSL / TLS连接访问Vagrant上的Node.js应用程序

所以我inheritance了一个Nodes.js应用程序,我在一个Vagrant框上运行。 我有应用程序绑定到“0.0.0.0”,它有自己的server.key和证书在securekey文件夹中。 var https = require('https'); var fs = require('fs'); var ssl_options = { key: fs.readFileSync('./securekey/server.key'), cert: fs.readFileSync('./securekey/server.crt'), ca: fs.readFileSync('./securekey/ca.crt') }; https.createServer(ssl_options, app).listen(3001, '0.0.0.0'); 当我运行该应用程序时,我希望能够通过URL https:// localhost:3001 (在我的Windows PC上运行Vagrant)浏览器访问它 但是我在Mozilla上得到了“安全连接失败”。 我曾经使用Cygwin在Windows PC上试过这个: $ openssl s_client -host 127.0.0.1 -port 3001 CONNECTED(00000003) write:errno=104 — no peer certificate available — No client certificate CA names sent — SSL […]

如何获得对ut_metadata片段请求的响应? (node.js Bit Torrent BEP 0009)

我正在使用Node.js构build一个Bittorrent客户端,并且无法通过PWP元数据扩展( BEP 0009 ) 我从DHT( BEP 0005 )(我宣布)获得同行,然后使用networking套接字通过PWP发送Handshake和Extended Handshake。 buildHandshake = (torrent, ext) => { // torrent contains mainly infoHash const buf = Buffer.alloc(68) buf.writeUInt8(19, 0) buf.write('BitTorrent protocol', 1) if (ext) { const big = new Uint64BE(1048576) big.toBuffer().copy(buf, 20) } else { buf.writeUInt32BE(0, 20) buf.writeUInt32BE(0, 24) } torrent.infoHashBuffer.copy(buf, 28) anon.nodeId().copy(buf, 48) // tool that generates […]

如何修改node.jsstream

我正在从S3stream式传输一个xml文件。 我需要为sphinxsearch引擎build立一个不同结构的新xml文件。 我已经从S3stream式传输文件,将其传送到SAXparsing器中,但是现在我需要弄清楚如何修改stream(在SAXparsing器之后)并上传到S3。 parser.on('startElement', function(name, attrs) { // Do something }); 我发现什么似乎是一个伟大的S3库stream称为诺克斯 ,所以我目前正在使用该库。 我没有卡在这个图书馆,只是我发现,似乎是体面的。 在这个例子中,他们必须将数据stream传输到S3的代码只能来自HTTP请求。 我比较新的stream,因为我有一个PHP的背景。 Knox示例stream: http.get('http://google.com/doodle.png', function(res){ var headers = { 'Content-Length': res.headers['content-length'] , 'Content-Type': res.headers['content-type'] }; client.putStream(res, '/doodle.png', headers, function(err, res){ // Logic }); }); 我想我需要做一些这方面的事情。 parser.on('startElement', function(name, attrs) { var headers = { 'Content-Length': res.headers['content-length'] , 'Content-Type': res.headers['content-type'] }; client.putStream(res, '/doodle.png', […]

MarkLogic 8 – 将大型结果集stream式传输到文件 – JavaScript – Node.js客户端API

比方说,我有一个查询将返回一个非常大的响应。 可能有成千上万的logging和可能的千兆字节的数据。 通常在UI中,我们只显示这个数据的一个页面。 现在我需要一个选项来获取整个结果集并将其输出到一个文件中。 然后用户可以在闲暇时间下载。 那么,如何使用查询构build器从查询中select所有结果,然后以块的forms将其stream出到文件中而不会耗尽内存?

使用xmlstream进行XML转换的Node.jsstream

我正在使用XMLstream来读取一个大的XML文件。 我想: pipe道收集元素到一个stream 可选地,使用一个或多个pipe道来转换这些元素 将结果传递给一个http响应 这里是xml-stream片段收集所需的元素: xml.on('endElement: item', function(item) { // pipe item to stream }) 如何为步骤1和步骤2构buildstream? PS的xml-stream只有console.log例子 更新1 这是我迄今写的: stream = require('stream'); let liner = new stream.Transform( { objectMode: true } ); liner._transform = function (data, encoding, done) { this.push(data); console.log(data); console.log('======================='); done(); }; let fileStream = fs.createReadStream(fileNames[0]); let xmlStream = new XmlStream(fileStream); let […]

如何创build一个临时写入stream?

我有一个文件stream,我想通过一个名为transformRead()方法,这个接受一个readStream和一个writeStream,但我不知道如何创build临时写入stream…我必须使用一个文件? 我只想从rs到ws的一种pipe(),然后ws被压缩并发送到响应。 // Get file stream var rs = store.getReadStream(fileId); var ws = ?????; // Execute transformation store.transformRead(rs, ws, fileId); var accept = req.headers['accept-encoding'] || ''; // Compress data if supported by the client if (accept.match(/\bdeflate\b/)) { res.writeHead(200, { 'Content-Encoding': 'deflate', 'Content-Type': file.type }); ws.pipe(zlib.createDeflate()).pipe(res); } else if (accept.match(/\bgzip\b/)) { res.writeHead(200, { 'Content-Encoding': 'gzip', 'Content-Type': […]

node.js – JSONStream期间的无限循环

我有一个在生产中冻结的node.js服务器,它似乎是由JSONStream内部的无限循环引起的。 以下是从冻结服务器的核心转储中捕获的​​堆栈跟踪: 1: toString [buffer.js:~392] (this=0x1e28fb6d25c9 <a Buffer>#1#,encoding=0x266ee104121 <undefined>,start=0x266ee104121 <undefined>,end=0x266ee104121 <undefined>) 2: arguments adaptor frame: 0->3 3: write [/home/deploy/node_modules/JSONStream/node_modules/jsonparse/jsonparse.js:136] (this=0x32cc8dd5a999 <a Parser>#2#,buffer=0x32cc8dd5aa49 <a Buffer>#3#) 4: /* anonymous */ [/home/deploy/node_modules/JSONStream/index.js:~17] (this=0x32cc8dd5ab11 <a Stream>#4#,chunk=0x32cc8dd5aa49 <a Buffer>#3#) 5: write [/home/deploy/node_modules/JSONStream/node_modules/through/index.js:~24] (this=0x32cc8dd5ab11 <a Stream>#4#,data=0x32cc8dd5aa49 <a Buffer>#3#) 6: write [_stream_readable.js:~582] (this=0x266ee106c91 <JS Global Object>#5#,dest=0x32cc8dd5ab11 <a Stream>#4#,i=0,list=0x266ee104101 <null>) 7: flow [_stream_readable.js:592] […]