Tag: http

Express.js HTTP请求超时

我想知道是否有人可以告诉我什么时候使用Express的默认HTTP请求超时。 我的意思是:处理一个http请求多less秒后,Express / Node.js服务器closures连接,当浏览器和服务器手动closures连接时? 如何修改单个路由的超时时间? 我想把它设置为15分钟左右的特殊audio转换路线。 非常感谢。 汤姆

在node.js中使用request.body或request.params有没有区别?

我想知道在从客户端发送数据到服务器时是否有任何使用node.js中的request.body或request.params偏好?

HTTP响应头中'Allow'和'Access-Control-Allow-Methods'之间的区别?

我使用ExpressJS for NodeJS编写了一个RESTful API。 我正在使用BackboneJS来调用这个API。 这是我的API通过OPTIONS返回的示例头: Access-Control-Allow-Headers:Content-Type Access-Control-Allow-Origin:http://localhost Allow:GET,PUT,DELETE Connection:keep-alive Content-Length:14 Content-Type:text/html; charset=utf-8 Date:Sun, 19 Aug 2012 13:52:35 GMT X-Powered-By:Express 我已经修改了标题以包含首先出现的两个访问控制允许字段。 其余部分由express自动生成,包括允许字段。 我能够没有问题的GET。 但是,当我尝试使用BackboneJS进行PUT或DELETE时,遇到: Method PUT is not allowed by Access-Control-Allow-Methods. Method DELETE is not allowed by Access-Control-Allow-Methods. 当然,我可以修改我的响应头包括这两个方法来解决这个问题。 但是我希望理解这些与ExpressJS基于绑定到路由的自动添加的基本“允许”之间的区别。 有什么不同?

Nodejs服务器主机名

好的,在Node.js中,让我的服务器获得请求的主机名似乎很简单: app.get('/', function(req,res){ console.log(req.headers.host); }); 有一个简单的方法来确定我的实际HTTP服务器的主机名? 例如,我的服务器运行在地址http://localhost:3000 – 我可以编程方式确定这个地址? 我正在使用expressjs。

如何在Node.js中用http.request限制响应长度

所以在这个(简化的)代码中,当有人点击我的节点服务器时,我向另一个网站发出GET请求,并将HTML页面标题打印到控制台。 工作正常: var http = require("http"); var cheerio = require('cheerio'); var port = 8081; s = http.createServer(function (req, res) { var opts = { method: 'GET', port: 80, hostname: "pwoing.com", path: "/" }; http.request(opts, function(response) { console.log("Content-length: ", response.headers['content-length']); var str = ''; response.on('data', function (chunk) { str += chunk; }); response.on('end', function() { dom […]

Express.JS:我怎样才能通过名字而不是数字设置回复状态?

好的,大家都知道200是没有问题的,404没有find。 但是,对于永久性与临时性redirect,付款需求或其他更具异国情调的HTTP错误代码,我可能会更好地执行如下操作: response.status('REQUEST_ENTITY_TOO_LARGE'); 而不是仅仅使用一个被认为是不好的练习的幻数。 当然,我可以在某些对象中使​​用413:'REQUEST_ENTITY_TOO_LARGE',但Express已经有一个状态码 – >名称映射的副本,我宁愿不重复。 如何在Express JS中按名称指定响应状态? 编辑 :谢谢@Akshat指出http.STATUS_CODES。 详细阐述他的答案,既然价值本身是独一无二的,那么可以运行: var statusCodeByName = {}; for ( var number in http.STATUS_CODES ) { statusCodeByName[http.STATUS_CODES[number]] = number } 这允许人们: > statusCodeByName['Request Entity Too Large'] '413'

为什么POSTredirect到GET和PUTredirect到PUT?

我使用Express 4.13.3 (最新版)和以下代码: var express = require('express') var app = express() app.get('/test', function (req, res, next) { res.send('hello!') }) app.post('/test', function (req, res, next) { res.redirect('/test') }) app.put('/test', function (req, res, next) { res.redirect('/test') }) app.listen(5001) // GET /test -> 'hello!' // POST /test -> 'hello!' // PUT /test -> ERR_TOO_MANY_REDIRECTS POSTredirect到GET,但PUTredirect到PUT。 是否有可能使PUTredirect到GET(与POST相同)?

node.js-http:在本地unixpipe道/套接字上侦听

是否有可能在本地unixpipe道/套接字本地监听node.js-http服务器? (例如/var/tmp/http.sock)。 我想与WebSockets和反向代理结合使用它。

如何捕捉getaddrinfo ENOTFOUND

我有一个链接列表,我需要在处理一些数据之前检查。 用http.get检查标题返回错误: events.js:72 throw er; // Unhandled 'error' event ^ Error: getaddrinfo ENOTFOUND at errnoException (dns.js:37:11) 我无法处理这个错误,并退出该过程。 我尝试res.on(“错误”)并尝试http.get上捕获,但没有任何工作。 下面是代码片段, 这里是runnable.com上的实例 //This is OK getHeaders('http://google.com/404pag-that-does-not-exit'); //Here is the error. //Uncoughtable error! getHeaders('http://doesnotexistooooo.com'); function getHeaders(link){ var _http = require("http"); var myUrl = require("url"); var qs=(myUrl.parse(link).search==null) ? "" : myUrl.parse(link).search ; var path=myUrl.parse(link).pathname; var options = { hostname: […]

链多个节点http请求

我是新来的节点,需要从我的代码调用第三方api。 我发现如何通过使用http.request这个链接https://docs.nodejitsu.com/articles/HTTP/clients/how-to-create-a-HTTP-request 。 我需要做的是调用两个不同的APIurl,并在第二次调用中使用第一个调用的响应数据,这只是一个id作为resource2上的参数。 我不知道如何将这两个电话连接在一起,而不是一个重复的混乱。 任何帮助,将不胜感激。 var url1 = { host: 'www.domain.com', path: '/api/resourse1' }; var url2 = { host: 'www.domain.com', path: '/api/resourse2/{id}' }; var callback = function (response) { var str = ''; response.on('data', function (chunk) { str += chunk; }); response.on('end', function () { console.log(str); }); } http.request(url1, callback).end();