Tag: stream

有什么用处是产生一个子节点进程,并将其传送给当前节点进程?

我正在尝试了解如何在docs.nodejitsu.com中使用Node中的stream。 var child = require('child_process'); var myREPL = child.spawn('node'); myREPL.stdout.pipe(process.stdout, { end: false }); process.stdin.resume(); process.stdin.pipe(myREPL.stdin, { end: false }); myREPL.stdin.on('end', function() { process.stdout.write('REPL stream ended.'); }); myREPL.on('exit', function (code) { process.exit(code); }); 读取代码,我可以看到一个新的节点REPL是在child.spawn('node')创build的,然后它的stdin和stdout都child.spawn('node')运行程序的节点进程的stdin和stdout。 这个代码的一个有用的应用是什么? 我能用它做什么?

在node.js / express中缓冲一个stream到res的stream

我有一个命令,我正在通过ffmpeg进行videostream传输,基本上是将响应内容传递给express中的res 。 例如: var args = ['-re','-i','/video.mkv','-loglevel','quiet','-r',24,'-threads',7,'-b:v','512k','-b:a','96k','-c:v','libx264','-c:a','libfdk_aac','-ar',22050,'-f','flv','pipe:1'] , command = spawn('ffmpeg', args); command.stdout.pipe(res); 我想要做的就是在输出传送到res之前“缓冲”这个数秒。 我试着创build一个new stream.Writeable() ,它采用了stdout ,然后使用setTimeout 3秒,但这似乎并没有工作。 有什么build议么? 谢谢!

来自Busboy的奇怪行为

我和Busboy有个奇怪的问题。 我通过使用Invoke-RestMethod来从PowerShell上传文件到Node.js中编写的远程服务器。 如果我使用streamfunction,代码工作没有任何问题。 它接受二进制数据并将文件写入本地驱动器而不会打嗝。 然而,当我使用Busboy时,它给了我“缺less边界错误”。 为了解决这个问题,我将边界传递给了Invoke-RestMethod。 这摆脱了边界的错误,但Busboy根本不会启动文件事件。 我一直在挠头,试图弄清楚已经两天了,解决scheme似乎没有了我。 几个星期前,这个代码工作得很好,但现在已经不复存在了。 我不确定工作环境是否有变化,但很奇怪。 stream代码:这工作得很好 服务器代码 fs = require('fs'); server = restify.createServer(); server.post('/file',restify.queryParser(),uploadFile); function uploadFile(req, res, next) { var wstream = fs.createWriteStream("x.jpg"); req.pipe(wstream); } 电源shell $upload= Invoke-RestMethod -Uri "http://localhost:8088/file" -Method Post -InFile $imagePath -ContentType 'multipart/form-data' 商店代码:这会引发Missing Boundary错误 服务器代码 fs = require('fs'); server = restify.createServer(); server.post('/file',restify.queryParser(),uploadFile); function uploadFile(req, res, next) […]

Gulp:将输出文件写入srcpath的子文件夹相对位置

我试图找出如何编写一个使用PostCSS的Gulp任务,以便它在原始path的postcss子文件夹中输出结果文件。 想象一下你有这些文件: /app/styles/index.css /app/elements/pages/home.css /app/elements/pages/profile.css 你想要Gulp输出postCSS过程: /app/styles/postcss/index.css /app/elements/pages/postcss/home.css /app/elements/pages/potcss/profile.css 这是我目前的configuration,但不起作用: gulp.task('css', function () { return gulp.src([ 'app/styles/index.css', 'app/elements/**/*.css' ], {base: './'}) .pipe(gulp.postcss([require('cssnext')()])) .pipe(gulp.dest('postcss')) }); 事实上,通过configuration文件,Gulp会将所有文件及其相关子目录输出到项目根目录下的一个postcss文件夹中。 任何想法如何解决它? 谢谢!!

合并Node.jsstream

我有一堆我读的文件,处理和合并来自相应的多个stream的某些数据到一个单一的stream。 有没有比下面更优雅的解决scheme(有一个单独的计数器,所有源stream发出end后调用combinedStream.end() ): let combinedStream = ….; let counter = 0; filePaths.forEach(function(filePath) { counter += 1; const fileStream = fs.createReadStream(filePath); const myStream = new MyStream(fileStream); myStream.on('data', myStream.write); myStream.on('end', function() { counter -= 1; if (counter === 0) { combinedStream.end(); } }); }); return combinedStream;

使用Node JS将Uint8Array转换为Stream

Uint8Array生JavaScript Uint8Array转换为可读或变换Stream的最佳方式是什么? 我想出了如何把Uint8Array的成为缓冲区,不知道这是否有帮助: var uint8array = new Uint8Array(); var buffer = new Buffer(uint8array);

使用grunt插件

我有以下gruntfile module.exports = function (grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), htmlhint: { build: { options: { 'tag-pair': true, 'tagname-lowercase': true, 'attr-lowercase': true, 'attr-value-double-quotes': true, 'doctype-first': true, 'spec-char-escape': true, 'id-unique': true, 'head-script-disabled': true, 'style-disabled': true }, src: ['index.html'] } }, watch: { html: { files: ['index.html'], tasks: ['htmlhint'] } } }); require("matchdep").filterDev("grunt-").forEach(grunt.loadNpmTasks); grunt.registerTask('default', ['watch']); }; 而当我尝试在CMD运行grunt它给了我这个错误 警告:找不到任务“默认”。 […]

用http请求使用HighlandJSstream

我想要一个url的数组,并将其映射到每个url的网页排名数组。 我想用stream来试试,但我不确定自己在做什么。 我试了几件事,这是我登陆(不工作)的地方: app.js var getPageRank = require('pagerank'); var _ = require('highland'); var urls = [ 'google.com', 'yahoo.com', 'bing.com' ]; // Example usage of getPageRank getPageRank(urls[0], function(err, ranking) { console.log(ranking); }); var getPR = _.wrapCallback(getPageRank); _(urls).map(getPR).toArray(function (myAnswer) { console.log(myAnswer); }); 的package.json { "name": "page-rank", "version": "0.0.0", "description": "", "main": "app.js", "scripts": { }, "author": "", […]

Node.js:如何限制请求列表?

我正在写一个node.js应用程序,它需要从提供程序的页面列表中获取一些数据: var list = [ { url: 'http://www.example.com/1' }, { url: 'http://www.example.com/2' }, … { url: 'http://www.example.com/N' }, ]; 目前我正在使用async.each ,这很好地工作: async.each( list, // 1st param is the array of items function(elem, callback) { // 2nd param is the function that each item is passed to request(elem.url, function (error, response, body) { if (!error && […]

Node + SQL Server:以stream的forms获取行数据

我尝试使用Microsoft驱动程序的 Node.Js连接器与SQL Server进行通信。 在连接器文档中,我find了一个名为'stream'的好选项。 它增加了asynchronous获取行对象的能力。 我的数据有一些具体的 – 一些列有大的二进制数据(> 100 Mb)。 所以即使是一排也许真的很大。 我正在寻找能够将每行数据作为一个stream。 这是可能的.NET驱动程序( CommandBehavior.SequentialAccess枚举)。 在Node.js中可能吗? 更新这里是一个代码来演示这个问题: 自定义可写stream模块: var stream = require('stream'); var util = require('util'); function WritableObjects() { stream.Writable.call( this, { objectMode: true } ); } util.inherits( WritableObjects, stream.Writable ); WritableObjects.prototype._write = function( chunk, encoding, doneWriting ) { console.log('write', chunk, encoding); doneWriting(); }; module.exports = […]