Tag: 包pipe理器

NodeJsstreampipe道是对称的吗?

我正在构build一个服务器,将文件从端点A传输到端点B. 我想知道如果NodeJsstreampipe是对称的? 如果我这样做: request.get(A).pipe(request.put(B)); ,它的上传速度和下载一样快吗? 我问这个问题,因为我的服务器有一个不对称的连接(它下载比上传更快),我尽量避免内存消耗。

节点 – 查看在require()期间使用哪个版本的软件包?

我有一个没有package.json (我试图修复)的节点模块。 该包使用cheerio和superagent : var log = console.log.bind(console), superagent = require('superagent'), cheerio = require('cheerio'); 这些依赖项是从父项目或全局模块中提取的。 我怎样才能确切地知道正在加载什么版本的软件包?

我如何计算我的npm安装?

我想看看npm install需要多less时间来完成安装我所有的依赖项。 有没有办法让我在本地(以npm)或者使用一些第三方插件来处理这个过程? 我试过* npm i –verbose * npm i –silly * slow-deps (分析你的npm包的第三方库) slow-deps给了我一个体面的结果,但我不确定它的准确性,因为它不作为npm install过程的一部分运行。 有没有其他的方法来精确的时间configurationnpm install过程? 我正在寻找这样的输出(来自Yarn的输出截图):

如何在节点中closures一个无界的pipe道stream请求?

我的节点/快速应用程序有一个terminal代理来自内部服务的数据stream,使用服务器发送的事件。 这意味着内部服务将继续在永恒中传输数据,直到连接closures。 它运行良好,但是当浏览器closures与我的节点应用程序的连接时,到内部服务的pipe道连接保持打开状态,从而导致内部服务有大量打开/未使用的连接。 所以我试图强制closures节点连接closures时的pipe道连接,但似乎无法弄清楚如何做到这一点。 代码看起来像这样。 使用request/request库pipe道。 import request from 'request'; app.get('/stream', (req, res) => { const stream = request.get({ url: 'https://internalservice.acme.com/stream' }) stream.on('error', console.log); stream.pipe(res); // When browser closes… req.on('close', () => { // …close connection to internal service stream.destroy() // <– doesn't work }); });

承载没有端口的Nodejs应用程序

我有一个nodejs应用程序运行在端口3000上。我想在Linux环境下托pipe它。 所以我安装了nodejs。 它工作正常,但我应该每次指定端口。 例如: mydomain.net:3000/url_i_want : mydomain.net:3000/url_i_want , 我怎样才能避免这一点。 还有像这样运行我的应用程序时,所有的用户都是相互连接的。 如果其中一个断开所有其他用户的话。 如果其中一个改变页面,其他所有页面都在改变。 是因为他们都在听同一个端口3000吗? 我search了一下,发现它可能与PM2和Nginx 。 这是解决scheme吗?

全球webpack安装与项目特定的webpack安装

我对webpack的工作方式有些困惑。 如果你在你的根目录下运行npm install examplePackage ,那么是否把这个软件包安装到你的硬盘? 那么这是否意味着您可以随时在任何文件中导入该软件包? 这与在你的项目中运行npm install examplePackage什么不同呢? 是因为当你把你的项目推到Github时,会有一个package.json供其他人使用,并确保他们有必要的库来运行你的应用程序呢? 节点知道如何通过你的项目search包或硬盘? 它只是检查你的图书馆,然后如果它没有find它,它会看你的硬盘?

用node.jsstreampipe道处理超时

我pipe道到一个HTTPS请求的文件,它可以正常工作99.9%的电话,但偶尔(可能当服务器或networking不可用)挂起无限期… 这显然导致我的应用程序停止工作,需要手动重新启动… 我有其他的HTTPS连接偶尔挂起,现在在请求对象上使用下面的错误代码,现在总是完成,如节点文档中所build议的: request.on('socket', function(socket) { socket.setTimeout(10000); socket.on('timeout', function() { request.abort(); }); }); request.on('error', function(e) { // Handle the error… console.error("FAILED!"); }); …但是,如果目的地是通过pipe道传输到文件stream的话,请求超时似乎会被忽略,也许我应该在文件系统对象上处理一个超时的错误,但是文档不清楚是否有一个事件等待除了“完成”… 这里是示例代码,我希望有人能帮助我: var https = require('https'), fs = require('fs'); var opts = { host: 'www.google.com', path: '/', method: 'GET', port: 443 }; var file = fs.createWriteStream('test.html'); var request = https.request(opts, function(response) { response.pipe(file); […]

Node.js:1D vs 2Darrays中的100M个元素 – 意外内存问题

比方说,我有一亿个随机floats我试图保存在一个数组中。 起初,我把数字保存在一个二维数组(基本上是一个matrix)中,但是后来我想,如果我把所有的100M单元存储在一个单一的线性一维数组中,那么我可以把整个数据做得更快。 令我惊讶的是,这发生了: 10 000×10000二维arrays 数组的创build和操作是相当快的, 即使默认的内存限制 ,Node也没有任何麻烦。 100M元素一维arrays 当试图生成100M随机浮动节点抛出 FATAL ERROR: invalid array length Allocation failed – JavaScript heap out of memory 即使用–max_old_space_size=8192调用 这是为什么? 这对我来说似乎是非常直观的。 我的猜测是使一个单一的长Array对象应该比另一个数组中存储10k数组更高的内存效率。 所以,是的,我的问题是: 为什么呢?

如何从一个stream中读取并一次写入多个?

假设我有一个readablestream,例如request(URL) 。 我想通过fs.createWriteStream()将请求的响应写在磁盘上, 但同时我想通过crypto.createHash()stream来计算下载数据的校验和。 readable -+-> calc checksum | +-> write to disk 我想在飞行中完成,而不是在内存中缓冲整个响应。 看来我可以on('data')钩子on('data')使用oldschool来实现它。 下面的伪代码: const hashStream = crypto.createHash('sha256'); hashStream.on('error', cleanup); const dst = fs.createWriteStream('…'); dst.on('error', cleanup); request(…).on('data', (chunk) => { hashStream.write(chunk); dst.write(chunk); }).on('end', () => { hashStream.end(); const checksum = hashStream.read(); if (checksum != '…') { cleanup(); } else { dst.end(); } }).on('error', […]

Node.js:pipe道文件时错误ECONNRESET

我有这个错误,而“pipe道”节点中的文件: events.js:160 throw er; // Unhandled 'error' event ^ Error: read ECONNRESET at exports._errnoException (util.js:1022:11) at Pipe.onread (net.js:569:26) 这是我的代码: var json_file = fs.createWriteStream(jsonFile), processes = 0, read_ended_flag = false, converter = new Converter(params); let read_csv_file = fs.createReadStream(csvFilePath); // For each csv line, we get a json doc converter.on('record_parsed', jsonObj => { processes++; json_file.write(JSON.stringify(jsonObj) + '\n', […]