Tag: 包pipe理器

节点JS请求+快速pipe道

我有一个从服务器到另一个videostream文件的问题。 我写了这个脚本 var request = require("request"), express = require("express"); var app = express(); app.get("/cast", function(req, res) { var url = req.query.video; res.writeHead(200, { 'Content-Type': 'video/mp4' }); request({ url: url, headers: { Referer: "http://example.com/1706398/" + url } }) .on('response', function(response) { response.on('data', function(data) { console.log("data chunk received: " + data.length) }); response.on('end', function(data) { console.log('Video completed'); […]

在Node.js中,是否正在侦听EventEmitter,创build一个对它的引用?

如果我有这样的代码: const EventEmitter = require('events'); class Bot extends EventEmitter { sendMessage() { // do something this.emit('messageSent', 'user123'); } } class Controller { loadBot() { const bot = new Bot(); bot.on('messageSent', userId => { // do something }); } } 在loadBot创build的bot对象会立即被销毁吗? 或者稍后通过垃圾收集? 或者, Controller的实例是否持有对它的引用,以便在Controller实例被销毁之前, bot永远不会被销毁?

我有Godaddy虚拟主机我需要主机node.js网站可以主机网站?

任何人都有想主办网站或参考如何在Godaddy上安装节点服务器。

从父进程派生/产生许多node.js进程的最高性能方式

我正在使用Node.js产生100个以上的subprocess,甚至1000个。我担心的是父进程可能会成为某种瓶颈,如果所有的subprocess的stdout / stderr必须通过父进程为了得到login的地方。 所以我的假设是,为了实现最高性能/吞吐量,我们应该忽略父进程中的stdout / stderr,如下所示: const cp = require('child_process'); items.forEach(function(exec){ const n = cp.spawn('node', [exec], { stdio: ['ignore','ignore','ignore','ipc'] }); }); 我的问题是,以这种方式使用pipe道会有多大的性能损失: // (100+ items to iterate over) items.forEach(function(exec){ const n = cp.spawn('node', [exec], { stdio: ['ignore','pipe','pipe','ipc'] }); }); 这样stdout和stderr被传送到父进程? 我认为性能损失可能会非常激烈,特别是如果我们在父进程中处理stdout / stderr,如下所示: // (100+ items to iterate over) items.forEach(function(exec){ const n = cp.spawn('node', [exec], […]

与gdb交互工作意外

我只是试图控制gdb, 玩具是gdb的前端。 来自这个答案的代码:在我的fedora系统上使用python3完美地工作。 但由于某种原因不适用于gdb。 这工作: var child = require('child_process'); var ps = child.spawn('python', ['-i']); ps.stdout.pipe(process.stdout); ps.stdin.write('1+1'); ps.stdin.end(); 这不起作用: var child = require('child_process'); var ps = child.spawn("gdb", ['gdb-test', '-q']); ps.stdout.pipe(process.stdout); ps.stdin.write('start'); 问题: (1)它打印到标准输出: 从gdb-test读取符号…从gdb-test …读取符号完成。 所以出于某种原因,就好像命令运行了两次。 (2)最重要的是, 启动命令并没有送入gdb,也没有在main里面放置断点。 例如:如果我手动内部运行, 开始将导致: “临时断点1,main()在gdb-test.c:5” gdb-test是这样编译的代码: //gdb-test.c: #include<stdio.h> int main() { int i = 10; i++; printf("%d\n"); } 我知道gdb有一个-tty选项,我不知道如何设置一个tty甚至应该工作,这里的任何线索也将受到欢迎,或设置一个tty和gdb的机器接口交互的线索。

NodeJS – pipe道多个FFMPEG进程

我试图编程一个转换器,可以采取任何video源,并将其转换为MP3。 mp3应该保存在我的硬盘上,或者保存在一个缓冲区中,通过电报发送。 目前为止效果不错,我唯一面临的问题是一次只能拍一个video,而我不知道为什么。 // IMPORTS var fs = require('fs'); var https = require('https'); var child_process = require('child_process'); // EVENTEMITER (Not used so far) var util = require('util'); var EventEmitter = require('events').EventEmitter; // STREAMHANDLER var StreamHandler = function(url, name){ // VARIABLES self = this; this.url = url; this.name = name; // CREATE FFMPEG PROCESS var spawn […]

如何使用下载的纱线依赖关系

这可能是一个非常愚蠢的问题,但如果你能帮助我的话,那将是非常棒的。 这是问题:我已经添加了一个包到我的项目。 它包含一些我想在我的HTML文件中使用的CSS文件等。 我已经使用yarn add <package>添加了它。 这些文件位于/node_modules/semantic-ui-css/semantic.min.css 。 我必须引用完整的node_modulepath来加载我的HTML文件中的CSS文件? 这听起来不对。 在我使用包pipe理器之前,我只是下载了一些css文件,将它们放到/vendor/css/并使用它们。 或者现在正常使用<link rel="stylesheet" type="text/css" href="node_modules/semantic-ui-css/semantic.min.css"> ?

NPMsearch远程软件包

对于我的生活,我无法弄清楚如何在我的0.2.19版安装中search远程NPM软件包。 npm ls和npm search (一个明显的另一个别名)只显示本地安装的软件包。 关联的帮助对话框/手册页缺less明显的答案,除了对configuration选项的模糊引用: 组态 listopts默认值:“” A whitespace-separated list of extra args that are always passed to npm ls For example: listopts = remote npm ls The output here will always filter by remote 我应该得出结论:npmsearch远程存储库的唯一方法是在configuration文件中添加一个设置,或者是否有可以使用的命令?

节点js:pipe道数据到多个stream

我正在使用节点gm中间件,它有resize和pipe道resize的图像的方法。 当我调整图像大小时,我需要将其caching并将图像传回给用户。 我可以同时做这两个吗? 要清楚我想要做的是gm(file).resize(…).pipe -> writeStream.pipe -> response 。 这可能吗?

subprocessNode.js中的stdout和stderr列大小

我想监视来自Node中subprocess的实时数据。 我可以做到这一点没有问题,下面的代码片段。 var fs = require('fs'); var spawn = require('child_process').spawn; (function(){ "use strict"; var processMonitor, processListen, processDeauth; var parseStreamDataIn = function(data) { var str = data.toString('utf8'); console.log(str); }; var init = function() { processMonitor = spawn('trafficmon' , ['-w'], {'shell': '/bin/bash'}); processMonitor.stdout.on('data', function (data) { //trafficmon uses stderr, nothing needed here… }); processMonitor.stderr.on('data', parseStreamDataIn); processMonitor.on('close', function […]