Articles of http

在进行API调用时如何避免504

我正在使用下面的代码来创build从我的节点应用程序调用一个API的请求。 var options = { host: "www.something.com", path: "/api/something.php", method: "POST" }; var request = https.request(options, callback); request.write(str); request.end(); 有时候我会收到状态码504的回复 会增加应用程序的超时帮助? 当我收到504的响应,是否意味着我的客户端和API服务器之间的网关放弃了? 或者是我的客户的问题?

显示多个客户端连接的服务器(net nodejs)

我正在试图制作一个服务器,侦听面向端口的互联网上,并将传入的http请求转发到侦听另一个端口的内部快速服务器。 以下是我正在使用的代码的相关部分。 var net = require('net'); var server = net.createServer(); server.listen(addr.from[3], addr.from[2], function(){ console.log('Server listening'); }); server.on('connection',function(from){ console.log('Client connected from '+ from.remoteAddress); var to = net.createConnection({ host: addr.to[2], port: addr.to[3] }); from.pipe(to); to.pipe(from); from.on('error',function(err){ winston.error('Error at unix box'+err); to.end(); }); to.on('error',function(err){ winston.error('Error at middleware server'+err); from.end(); }); from.on('end',function(){ console.log('Client disconnected '); to.end(); }); to.on('end',function(){ console.log('Middleware […]

摩卡单位testing路线返回200好

我正在使用摩卡来testing,如果我已经添加到我的服务器的一些路线返回200好,如果响应包含一个string。 我这样做是这样的: var testDBRoute = function(link, routeName) { it('should return 200 OK for ' + routeName, function (done) { http.get(link, function (res) { assert.equal(200, res.statusCode); done(); }) }); it('should return the correct info', function(done) { http.get(link, function (res) { var body = ''; res.on('data', function(chunk) { body += chunk; }); res.on('end', function() { var response […]

重复的http post请求被延迟

我试图通过发布请求上传一个.zip文件(〜180KB)作为八位字节stream。 以下代码按预期执行2-3次。 文件被上传,我得到了预期的回应。 但是,当第三次/第四次发布数据时,请求不会在上传服务器上显示一分钟左右。 当我等一会儿,我可以正常执行2-3次的请求,然后再次延迟。 两个服务器都运行在本地主机(OS X)上的节点(v0.10.31)+ express。 var options = { host : interface.host, port : interface.port, path : interface.path + '/deployResources', method : 'POST', headers : { 'Content-Type': 'application/octet-stream', 'Content-Length': byteLength, 'Content-disposition': 'attachment; filename=resources.zip' } }; var stream = fs.createReadStream(zipPath); var req = http.request(options, function (res) { // Response delayed on 3rd/4th run […]

节点js的busboy不发射事件与angularjs $ http后

Busboy似乎只是卡在那里。 我testing了所有3个事件(文件,字段,完成),但没有发射任何东西。 我的angular码在下面。 $http({ method : 'POST', url : mublAConfig.server + '/api/v3/user/friend', headers : { 'Content-Type' : 'application/x-www-form-urlencoded', 'Authorization' : access_token }, transformRequest : function(obj) { var str = []; for (var p in obj) { str.push(encodeURIComponent(p) + '=' + encodeURIComponent(obj[p])); } return str.join('&'); }, data : { id : $scope.writes[0].input, say : $scope.writes[1].input } […]

tshark:特定输出端口的http事务信息

我试图在与另一个服务交谈时debugging节点中的ETIMEDOUT问题。 我的设置是1台服务器运行节点应用程序,它使用模块dockerode来检查容器。 1个运行docker的服务器。 stack: Error: connect ETIMEDOUT at errnoException (net.js:901:11) at Object.afterConnect [as oncomplete] (net.js:892:19) 我想弄清楚为什么会发生这种情况。 我读了一下tshark,似乎有我想要的数据。 我目前正在使用这个: sudo tshark -i eth0来获取我的信息。 示例输出: 17 0.005451 10.0.1.10 -> 10.0.1.219 TCP 66 58321 > 4242 [ACK] Seq=146 Ack=2121 Win=31232 Len=0 TSval=431658268 TSecr=799817403 18 0.006179 10.0.1.10 -> 10.0.1.219 TCP 66 58321 > 4242 [FIN, ACK] Seq=146 Ack=2121 Win=31232 […]

(Browser-as-Client)$ .ajax上的HTTP 405发布到Node服务

背景 首先,我有一个运行在Node上的Restify服务,当我使用一个GUI HTTP客户端时,它是完美的。 我只是说,以前强调,这是一个以浏览器为中心的问题。 如果需要服务器端的解决scheme,它是适应浏览器… 以下是使用我的Restify Web服务和GUI HTTP客户端的100%functionHTTP请求和响应: 要求 – POST /appointments HTTP/1.1 Content-Type: application/json Accept: application/json Host: localhost:8085 Connection: close User-Agent: Paw/2.1.1 (Macintosh; OS X/10.10.1) GCDHTTPRequest Content-Length: 142 { "eventName": "Fiesta Forever", "time": "Fri Dec 19 2014 15:55:00 GMT-0600 (CST)", "phoneNumber": "13125555555" } 回应 – HTTP/1.1 201 Created Access-Control-Allow-Origin: * Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, […]

在使用nodejs passport来集成第三方平台时,发生InternalOAuthError

我想使用护照(使用paasport-facebook和QQ)来validation用户。 但遇到以下错误:当我使用Facebook身份validation: error when auth: { [InternalOAuthError: Failed to obtain access token] name: 'InternalOAuthError', message: 'Failed to obtain access token', oauthError: [Error: Hostname/IP doesn't match certificate's altnames] } 当我使用QQ身份validation,我得到这个: name: 'InternalOAuthError', message: 'failed to obtain access token', oauthError: [Error: CERT_UNTRUSTED] } 这是我的/ etc / hosts文件: 127.0.0.1 www.siyee.org 127.0.0.1 localhost 255.255.255.255 broadcasthost ::1 localhost 因为authcallback必须是域名,所以我改变了我的开发环境中的主机,以匹配Facebook服务器上的callback设置。它不是很聪明,但可以生效。任何更好的主意? 我认为这个问题是在我的主机设置或证书,但我不知道如何解决它,任何forms的帮助将是伟大的!

websocket与http模块一起工作,但不能与express(node.js)

我正在尝试使用express和websocket模块使websokects与node.js一起工作。 有趣的是,如果我使用http模块创build服务器,他们按预期工作,我收到状态101。 但是,如果我使用快速模块来创build服务器,它会引发一个错误: WebSocket connection to 'ws://localhost:2345/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED 这是代码 // using http module (works) var WebSocketServer = require("websocket").server; var http = require("http"); var app = http.createServer(function(request, response) { response.writeHeader(200, {'Content-Type':'text/html'}); response.end(""+ "<!DOCTYPE html>"+ "<html>"+ "<head>"+ "<script>"+ "var ws = new WebSocket('ws://localhost:2345/');"+ "ws.onmessage = function(event) { "+ "var span = document.createElement('span');"+ […]

Node.JS等价于getContextPath,getServletPath?

我正在开发一个web服务器,它将加载各种“web应用程序”在同一个域上的各种模块。 在下面的例子中, createServer(function (req, res) { // crude request routing example var path = url.parse(req.url).pathname if(path.match(/^\/cats(?:\/|$)/)) require('./cats.js')(req, res) else if(path.match(/^\/dogs(?:\/|$)/)) require('./dogs.js')(req, res) else require('./404.js')(req, res) }) if语句检查匹配的上下文path,并将其路由到适当的模块。 现在模块cats.js看起来像这样: module.exports = function (req, res) { var path = url.parse(req.url).pathname // HOW can I get context path and path info? What variables should I use? if(req.path == […]