Tag: 包pipe理器

数字海洋上的访问节点应用程序 – 无法访问此网站

我无法访问我的数字海洋节点js应用程序。 我已经SSH'ed,从Git克隆我的节点应用程序,npm安装,并成功地启动应用程序的液滴,但我得到错误 此网站无法联系到 数字海洋文档说,你可以访问你的公共网站,只需转到<your website's ip>:<port> : 我做了这个67.205.185.63:9000/ (我的应用程序运行在9000端口,你可以看到): root @ nodejs-512mb-nyc1-01:〜/ demos#npm start live-demos@1.0.0 start / root / demos 节点app.js 演示正在监听9000端口 我还应该如何访问我的节点应用程序? var express = require('express'); var bodyParser = require('body-parser'); var app = express(); var port = process.env.PORT || 9000; … app.listen(port, function () { console.log('Demos is listening on port ' + port); });

把我的node.js应用程序在线

所以,最近两个月我一直在学校开发一个Node.js应用程序,星期一它需要在线,以便我的老师可以看看它。 我怎样才能做到这一点? 我真的可以在这里得到一些帮助。 提前致谢! 注意:我正在使用Mongodb作为我的数据库。

当进程内存不足时删除大的Javascript对象

我是这种JavaScript的新手,所以我会给一个简短的解释: 我有一个在Nodejs中构build的Web抓取器,它收集(相当一部分)数据,使用Cheerio (基本上是jQuery for Node )创build一个对象,然后将其上传到mongoDB。 它工作得很好,除了在较大的网站。 似乎正在发生的是: 我给刮板一个网上商店的URL刮 节点转到该URL并从5,000 – 40,000个产品URL中检索任何地方进行刮取 对于这些新URL中的每一个,Node的request模块获取页面源,然后将数据加载到Cheerio 。 使用Cheerio我创build了一个代表产品的JS对象。 我将对象发送到MongoDB,并保存到我的数据库中。 正如我所说,这发生了成千上万的url,一旦我到达,比如说,10,000个url加载,我得到的节点错误。 最常见的是: Node: Fatal JS Error: Process out of memory 好的,这是实际的问题: 我认为这是因为节点的垃圾清理工作不正常。 例如,从所有40,000个URL中删除的request数据可能仍在内存中,或者至less有40,000个创build的JavaScript对象可能是。 也许这也是因为MongoDB连接是在会话开始时进行的,并且从不closures(我只是在所有产品完成后手动closures脚本)。 这是为了避免每次login新产品时打开/closures连接。 要真正确保它们被正确清理(一旦产品进入MongoDB,我不再使用它,可以从内存中删除),我可以/只需要简单地从内存中删除它,只需使用delete product ? 更重要的是(如果我删除了一个引用的对象是完全从内存中删除,或者我必须删除所有这些对象,我不清楚JS如何处理对象) 例如: var saveToDB = require ('./mongoDBFunction.js'); function getData(link){ request(link, function(data){ var $ = cheerio.load(data); createProduct($) }) } function createProduct($) var […]

节点请求(读取图像stream – pipe道回到响应)

对你们中的一些人来说很容易的问题 我有一个API端点,返回一个HTTP响应与内容types设置为一个图像types – 图像/ JPEG,图像/ PNG等,如果没有图像的人与我正在发送的ID。 如果404,我想只发送文件系统中的no文件png。 我一直在尝试使用请求和pipe道,我没有find一个相似的例子。 人们总是从一个文件stream。 如果这个工作本身: app.get('/api/customers/:id/image', function (req, res) { request.get(util.format(config.apis.getImage, req.params.id)).pipe(res); //res.sendfile(path.join(__dirname, '/static/img/user.png')); }); 它确实将图像返回给浏览器,但引发exception: stream.js:94 throw er; // Unhandled stream error in pipe. Error: Parse Error at Socket.socketOnData(http.js:1556:20) … 无论哪种方式,我想检查的情况下,请求调用的情况下,404案件。 我想我只是太新而不能stream。 任何帮助? 谢谢!

pipe道到一个spawn stdin

我想pipe一些stream数据到feedgnuplot为了实时绘制它 以下工作: // index.js readableStream.pipe(process.stdout) // in bash $ node index.js | feedgnuplot –stream 但是下面的行不通(这就是我想要做的): // index.js var feedgnuplot = require('child_process').spawn('feedgnuplot', ['–stream']) readableStream.pipe(feedgnuplot.stdin) //in bash $ node index.js 我收到ECONNRESET错误 编辑:请求可读stream的示例: var util = require('util') var Readable = require('stream').Readable util.inherits(SomeReadableStream, Readable) function SomeReadableStream () { Readable.call(this) } SomeReadableStream.prototype._read = function () { this.push(Math.random().toString()+'\n') } var someReadableStream […]

如何获取node.js zlib gunzippipe道工作?

我有一个大的.gz文件(大概大约100Mb),但是,当我使用下面的代码处理文件时,输出的文件只有256k。 var fs = require('fs'), zlib = require('zlib'); var inp1 = fs.createReadStream('feed.xml.gz'); var out1 = fs.createWriteStream('feed.xml'); inp1.pipe(zlib.createGunzip()).pipe(out1); 问题似乎与zlib.createGunzip()pipe道。 有没有办法来解决这个问题? 我试图从互联网上直接stream式传输。

for循环中的Javascript内存使用情况

我试图在nodejs(0.10.35)中剖析内存使用情况,我在下面创build了2个文件并使用node –expose-gc var a和var b被初始化为空string 运行for循环使a和b变大 setInterval每1秒打印一次内存使用情况 x >> 20运算符等同于Math.floor(x / 1024/1024),以MB为单位给出结果 //file 1.js var a = '', b = '', n = 0; var i = 10000000; for (;i;i–) {a += i; b += i;}} setInterval(function(){ var m = process.memoryUsage(); console.log(++n,m.rss>>20,m.heapTotal>>20,m.heapUsed>>20); },1000); setTimeout(function(){ global.gc(); console.log('1st garbage collect'); },2500); setTimeout(function(){ a = null; console.log('var a […]

webRTC应用需要多less托pipeRAM?

我将主持一个webrtc应用程序。 所有服务器需要做的只是传递消息,如房间号码,候选人,断开连接等,只是传递信息的所有消息。 我正在使用socket.io和node.js。 服务器几乎只是传递文字。 没有login,没有数据库,这一切都在记忆中。 它跟踪在线用户列表(只有多less个在线)以及所用房间列表。 所以列出了几个数字,并在用户之间传递文本,以便他们可以通过webrtc进行连接。 现在,很显然,如果我收到大量的stream量,列表可能会变得很大,例如每个列表中可能有10k-20k的5位数字(只有一些大的列表)。 和所有的传递,如断开连接。 我需要一个服务器,可以做这个东西快,最好是一个免费的服务器。 我的意思是,这只是文字,所以这不应该是一个大问题,对吧? 但我的应用程序是围绕一个人连接到下一个连接的人。 所以,如果大部分人都在同一时间连接,那么我需要一个快速的托pipe服务器,可以处理到毫秒…这将是一个问题吗? 我应该在服务器中寻找什么,如果我只是使用内存的数字列表(无数据库),并传递文本的东西。

如何获得node.js中的subprocess内存使用情况?

我知道有一个api process.memoryUsage()来获取当前进程的内存使用情况。 但是,如果我通过child_process.spawn(command,[args],[options])启动一个新的subprocess,并且我得到一个ChildProcess对象,那么如何获得新的进程内存使用?

Nexus兼容的存储库以获取节点和npm安装程序

我正在寻找一个nexus兼容的存储库,我可以得到一个节点安装程序(符合nexus的替代http://nodejs.org/dist/ 。 背景: 在Java环境中,我们的构build由maven处理。 最近,我们添加了一个JavaScript前端应用程序,我试图通过maven与优秀的插件前端Maven的插件 。 插件安装节点和npm,然后运行npm install和grunt build 。 一切正常。 但是我们必须把我们所有的依赖放在nexus(或者一些本地代理的仓库)下。 关于前端依赖关系:没有问题,因为nexus 2.10支持npmregistry。 有用。 关于节点和npm安装程序,它们最初是由插件从http://nodejs.org/dist/下载的,我不知道如何在本地代理此repo …或者我可以从哪里find这些安装程序合规的 有什么build议么 ? 谢谢。