Tag: http

request.close事件在node.js服务器中不会​​触发

我正在使用node.js作为服务器的长轮询应用程序。 具体的任务是立即学习,然后用户下线。 所以,我必须听取request.close事件,对吗? 我从如何检查连接是否在node.js服务器中被中止复制下面的一段代码 var http = require("http"), util = require("util"); var httpServer = http.createServer(function(req, res) { util.log("new request…"); // notify me when client connection is lost req.on("close", function(err) { util.log("request closed…"); }); // wait with response for 15 seconds setTimeout(function() { res.writeHead(200, {'Content-Type': 'text/plain'}); res.write("response"); res.end(); util.log("response sent…"); }, 15000); }); httpServer.listen(8888, "127.0.0.1"); util.log("Running […]

node.js request.js并不是触发请求

(我也发布了这个问题的请求的github页面上的链接 ) 我有一个应用程序使用请求从内部API获取API数据。 我正在做一些testing,看起来我们的应用程序在负载较重的情况下性能不佳,而且API响应速度越来越慢。 我根据我们所使用的请求调用推导出这个结果,看起来好像请求可能是将这些请求放在一个队列中,而不是一次全部放入。 这是一个testing脚本,显示了这个行为: #!/usr/bin/env node var request = require("request"), logger = require("./logger.js"), argv = require("optimist").argv; var numRequests = argv.requests || argv.r, requestsMade = 0, wait = argv.wait || argv.w || 0, url = argv.url || argv.u || "http://www.google.com", requestApi = function(url,callback){ var requestTime = new Date().getTime(); request({ method: "GET", uri: url },function(err, […]

如何在node.js http客户端中设置套接字连接超时

有没有办法在node.js http.request中设置套接字连接超时? 我不想设置一个HTTP请求超时,但连接超时。

(object Object)从Node中的JSON请求返回

我还有一个关于Node的简单问题。 我试图做一个简单的http请求到开放课件searchAPI( http://www.ocwsearch.com/api ),但我遇到了一些问题,实际上parsingJSON …通常没有是个问题。 该请求返回一个string,该string具有转义字符和斜杠,所以我在响应string上运行了一个replace和一个unescape,但是最终返回了类似'[object Object]'的东西。 现在,我真正想做的就是能够看到最后被返回的东西,所以我可以告诉我是否最终可以将其parsing为有效的JSON。 不幸的是,这也不起作用。 我已经阅读了堆栈溢出的几个类似的线程,但我仍然无法得到它的工作。 我试过了: 遍历所传递的对象,因为我认为它是关键值对的东西,并运行它,每次都logging下来。 但是,这会将其输出为string: [ Ø b …一直到最后(]) 如果将x作为返回的格式化对象, 使用“”+ x,toString(),尝试将其转换为string 使用console.log(“%j”,x)按照如何loggingNode.js中的JSON对象的内容? 这些似乎没有工作,他们都返回我[对象对象]。 我甚至在jsfiddle中试过: http : //jsfiddle.net/S47QL/2/我用alert来replaceconsole.log,好像是重新 我的代码: var request = require('request');$ request('http://www.ocwsearch.com/api/v1/search.json?q=' + skill + '&contact=http%3a%2f%2fwww.ocwsearch.com%2fabout/',$ function(error, response, body){$ if(!error && response.statusCode == 200){~$ console.log(response.toString().replace(/\\\//g, "/"));$ var x = response.toString().replace(/\\\//g, "/");$ console.log(x)$ console.log(x.keys());$ }$ });$

如何将本地ipv6地址绑定到我的node.js程序?

我刚刚在nodejs中创build了这个简单的程序,但是我不能将它绑定到我的NIC的ipv6地址。 我在API文档中读到以下内容 localAddress:绑定networking连接的本地接口。 var http = require('http'); var options = { hostname: 'www.whatismyipv6.com', localAddress: '2a01:xxxx:xxxx:xxxx::2' //a real ipv6 address here }; var req = http.request(options, function(res) { res.on('data', function (chunk) { console.log(chunk.toString()); }); }); req.on('error', function(e) { console.log('ERROR: ' + e.message); }); req.end(); 但是,当我执行程序,我得到这个。 请注意ipv4地址。 <head> <title>WhatIsMyIPv6? (IPv4: xx.xx.xxx.xxx)</title> <meta name="bitly-verification" content="984886d337a6"/> </head> 它看起来像nodejs忽略localAddress并直接绑定到ipv4地址。 # […]

在nodejs中转发代理

我用nodejs做了一个小的转发代理,并把它放在appfog中。 它设置了我的浏览器的代理后在本地工作,但是当我尝试使用托pipe在appfog中的一个说:* Errore 130(net :: ERR_PROXY_CONNECTION_FAILED):Connessione al服务器代理非riuscita。*这是我的代码: var http = require('http'); http.createServer(function(request, response) { http.get(request.url, function(res) { console.log("Got response: " + res.statusCode); res.on('data', function(d) { response.write(d); }); res.on('end', function() { response.end(); }); }).on('error', function(e) { console.log("Got error: " + e.message); }); }).listen(8080); 我错过了什么? 你的代码正在工作,但一旦我已经尝试使用它像这样: var port = process.env.VCAP_APP_PORT || 8080; var http = require('http'); var […]

Node.js和Forever / Forever-Montior

我正在使用forever-monitor产生一个基本的HTTP节点服务器,但是当我执行执行永远监视器脚本的JavaScript时,它不会被发送到后台,当我退出TTY会话时,HTTP服务器停止。 我用来产生服务器的代码如下。 我真正要问的问题是,我是否应该使用Forevers CLI来产生以编程方式产生后续服务器的脚本? var forever = require('forever-monitor'); var child = new (forever.Monitor)('streams.js', { max: 3, silent: true, options: [] }); child.on('exit', function () { console.log('streams.js has exited after 3 restarts'); }); child.start();

在Socket.socketOnDataparsing错误

这个错误是怎么解决的? Error: Parse Error at Socket.socketOnData (http.js:1583:20) at TCP.onread (net.js:525:27) 我试图模拟一个服务器上的攻击,所以我的程序发送大量的http请求。 我猜这个问题是与套接字或在服务器上的限制… 我将ulimit更改为6000: ulimit -n 6000 但没有太多的帮助…

parsingURL(作为string)并将每个子页面拼接成一个数组

鉴于url(string) http://stackoverflow.com/questions/ask ,我怎么能把它分成一个包含如下数据的数组: questions , ask 。 我将如何使这项工作无限量的斜线? 我想这样做的方法是在Node.JS中使用STRING.split('/') ,然后使用STRING.split('/')将string分隔成一个数组。 这是否是正确的方法呢? 有更快的方法吗?

如何在nodejs中实现curl选项

我正试图在节点中实现一个curl请求。 在curl中,您可以执行以下POST请求: curl -v https://api.sandbox.paypal.com/v1/oauth2/token \ -H "Accept: application/json" \ -H "Accept-Language: en_US" \ -u "client_id:client_secret" \ -d "grant_type=client_credentials" 我知道如何设置标题和使用节点http模块写入数据有效载荷,但我如何实现-u client_id:client_secret使用http模块的-u client_id:client_secret ?