Tag: stream

文件下载完成后运行文件

我对node-webkit很新颖。 我正在使用下面的代码来下载一个文件。 当文件完成后,我将如何自动运行文件? var https = require('https'); var fs = require('fs'); var file = fs.createWriteStream("update_setup.exe"); var request = https.get(url + "/appdata/update_setup.exe", function (response) { response.pipe(file); });

Node.js:检测一个用fs.createWriteStream()打开的文件,将被删除

说我有下面的节点程序,一台机器“Ping!”: var machine = require('fs').createWriteStream('machine.log', { flags : 'a', encoding : 'utf8', mode : 0644 }); setInterval(function () { var message = 'Ping!'; console.log(message); machine.write(message + '\n'); }, 1000); 每秒都会向控制台输出一条消息,并将其附加到一个日志文件(如果需要,它将在启动时创build)。 这一切都很好。 但现在,如果我在进程运行的时候删除了machine.log文件,它将继续愉快地嗡嗡作响,但由于文件不存在,写入将不再成功。 但看起来写入失败,意味着我需要明确检查这种情况。 我已经search了stream文档,但似乎无法find发生此类事情时发生的明显事件。 write()的返回值也没有用。 我怎样才能检测到我正在写的文件被删除,所以我可以尝试重新打开或重新创build文件? 这是一个CentOS盒子,如果这是相关的。

NodeJSstream – 漏pipe?

目前我正在使用NodeJSstream进行大量的工作。 我发现自己需要的一件事是“漏水pipe道”。 就像stream.PassThrough一样,但是如果(而且只是)没有发送数据的话,它只会丢弃数据。 这样的事情已经存在吗? 有没有办法找出(在一个stream.Transform )有多less下游pipe道连接?

ENAMETOOLONG请求xml文件

我正在尝试通过node的请求模块获取我的RSS数据源(xml文件),如下所示: var fs = require('fs') , request = require('request') , feed = 'http://www.benchmark.pl/rss/aktualnosci-pliki.xml'; request.get(feed, function(error, response, body) { if (!error && response.statusCode == 200) { var csv = body; fs.createReadStream(body) .on('error', function (error) { console.error(error); }); } }); 但我得到的错误: { [Error: ENAMETOOLONG, open '<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/"> <channel> <title> …. </rss> 在这种情况下我该怎么办?

BinaryJS的替代? 通过websockets在浏览器和服务器之间复用stream

我需要通过单个Websocket连接在浏览器和Node.js服务器之间多路复用一对stream。 一个stream将被用于从浏览器发送二进制数据到服务器,另一个将被用于一个简单的RPC 。 我偶然发现了BinaryJS ,这正是我想要的。 但是,它具有二进制数据的特定问题,并且不会定期维护。 有其他select吗? 我的要求: 二进制兼容(无需二进制数据的JSON序列化…需要大量的带宽) 支持多个双向stream 我其实并不在乎浏览器的支持。 我的应用程序依赖于其他现代的API,所以我只针对当前版本的Chrome和Firefox。 有任何想法吗?

在NodeJS中下载文件

我正在编写HTML所见即所得的应用程序。 用户编辑网页后,应能够点击下载button,并通过浏览器提示保存编辑好的网页。 我不想将他们编辑的网页存储在我的服务器上,而是将文件发送到他们的本地机器上。 到目前为止,在我的应用程序中,我可以编辑模板,当用户单击下载button时获取HTML,并使用NodeJS的fs.createWriteStream方法,将HTML写入新创build的HTML文件。 但是,它会在我的服务器上创build文件,而不是提示浏览器将文件保存在“下载”文件夹中。 我使用Socket.io来告诉服务器下载HTML内容。 经过研究,我发现为了使浏览器提示用户保存下载文件,必须使用Content-Disposition:附件头来设置HTTP头。 总之,当用户在我的应用程序中单击下载button时,我该怎么做才能创build一个新文件,并直接保存在用户本地计算机而不是我的服务器上? 这是我在我的server.js文件中: io.sockets.on('connection', function(socket) { socket.on('downloadHTML', function(data) { var file = fs.createWriteStream('PearlEdit-template-Martketing.html', {flags: 'w'}) .write(data.html); }); });

如何结合寻找节点快递audiostream

我有一个小的播客饲料,我主持,后我终于把它连接到羽绒一切正常,直到我试图跳过前进/后退。 我终于意识到,寻求不是固有的pipe道stream的一部分。 我search了一下,我似乎无法find任何有用的东西。 用下面的代码,我将如何实现寻求? app.get('/stream/:id', function(req, res) { if (!req.params.id) { res.status(404); res.send("Not found"); } var filePath = path.join(Config.media, '**' , req.params.id); filePath = glob.sync(filePath)[0]; var stat = fs.statSync(filePath); res.writeHead(200, { 'Content-Type': 'audio/mpeg', 'Content-Length': stat.size, 'Accept-Ranges': 'bytes' }); var readStream = fs.createReadStream(filePath); readStream.pipe(res); });

每秒钟减less一块

我有一条逐行读取文件的高地stream,我想每秒慢一点。 我查看了文档,唯一的function是throttle()和debounce() 。 这两个下降值。 我需要保持所有的价值观,放慢速度。

在gulp中的es.merge用法:Object#<Stream>没有方法'end'

我正在努力获得两条并行的处理路线。 我的代码如下所示: gulp.task('build', function(){ return gulp.src(src,{cwd:srcDir}) .pipe(concat('sdk.js', {newLine:'\n\n'})) .pipe(gulp.dest('dist/')) .pipe(jshint()) .pipe(jshint.reporter('default')) .pipe(es.merge( gulp.src('dist/sdk.js') .pipe(preprocess({context:{debug:true}})) .pipe(rename('sdk.debug.js')), gulp.src('dist/sdk.js') .pipe(preprocess({context:{}})) .pipe(uglify()) .pipe(rename('sdk.min.js')) )) //some more processing .pipe(gulp.dest('dist/')) ; }); 我在这里find了一个build议,这样分叉和合并stream的方式应该是可行的。 但是,我得到的错误: stream.js:79 dest.end(); ^ TypeError: Object #<Stream> has no method 'end' at Stream.onend (stream.js:79:10) at Stream.EventEmitter.emit (events.js:117:20) at end (C:\Users\user\Documents\proj\node-sdk\node_modules\gulp- jshint\node_modules\map-stream\index.js:116:39) at Stream.stream.end (C:\Users\user\Documents\proj\node-sdk\node _modules\gulp-jshint\node_modules\map-stream\index.js:122:5) at Stream.onend (stream.js:79:10) […]

如何使用nodejs将可读stream转换为有效的JSON?

我正在尝试使用音乐会数据的ATOM提要,并将其输出到JSON以获得更好的消费。 到目前为止,我一直在使用请求来获取数据和feedparser来parsing它,它似乎正在工作,因为我想。 // data var feed = 'http://mix.chimpfeedr.com/630a0-dcshows'; var wstream = fs.createWriteStream('data.json'); var req = request(feed); var feedparser = new FeedParser({ addmeta: false }); req.on('response', function(res) { var stream = this; if (res.statusCode != 200) return this.emit('error', new Error('Bad status code')); stream.pipe(feedparser) }); feedparser.on('readable', function() { var stream = this; var item; // … do […]