Articles of http

为什么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();

Node.js:node.js中的http.get方法是否有同步版本?

node.js中有没有同步版本的http.get方法? 就像是: http.getSync({ host: 'google.com', port: 80, path: '/' }, function(response){ }); console.log(response) 有时候这会非常有用。

WebSockets:有助于减less开销?

我正在构build一个dynamicsearch(更新每个击键):我目前的计划是,在每个按键,发送一个新的AJAX请求到服务器,并获取数据返回到JSON。 我考虑为每个search“会话”打开一个WebSocket,以节省一些开销。 我知道这样可以节省时间,但问题在于,考虑这些参数是否真的值得:80ms平均ping时间166ms:每次按键之间的时间,假定用户types相对较快最差情况下的传输速率为1MB / s每个按键的每个数据包必须不超过1KB。 该应用程序还需要30-40毫秒的东西来焊接search结果的DOM。 我发现这个: 关于开销的HTTP vs Websockets ,但它是一个不同的用例。 除了纯粹的HTTP开销之外,websockets会减less什么吗? HTTP开销多less(假设没有cookie和最小标题)? 我猜测HTTP请求会在每个请求中打开一个新的networking套接字,而WebSocket允许我们只使用一个。 如果我的理解是正确的,打开一个新的networking套接字的实际开销是多less?

Koa的`ctx.status`没有被发送到客户端

这是我的简单路线: router.post('/getFile', async (ctx) => { const fileName = `${ctx.request.body.file}.pdf`; const file = fs.createReadStream(fileName); // This file might not exist. file.on('error', (err) => { ctx.response.status = 500; // This status code doesn't make it to client when there's an error. }); ctx.response.type = 'application/pdf'; ctx.response.body = file; }); 这里是我的客户代码: async function main() { const request […]

我怎样才能dynamic加载和stream大的video文件到IE不发送范围头?

前段时间我在一些stream媒体video教程中发现了这个function,这样整个文件就不需要加载到内存中了,这样就可以在没有崩溃的情况下为大video文件提供服务Node.js – 用电影长度的video文件不难超越,增加内存分配只是一个创可贴的解决scheme)。 var fs = require("fs"), http = require("http"), url = require("url"), path = require("path"); var dirPath = process.cwd(); var videoReqHandler = function(req, res, pathname) { var file = dirPath + "/client" + pathname; var range = req.headers.range; var positions = range.replace(/bytes=/, "").split("-"); var start = parseInt(positions[0], 10); fs.stat(file, function(err, stats) { if (err) […]

Node.js http请求stream水线

所以,我想使用node.js和http请求stream水线,但我只想使用HTTP作为传输,没有别的。 我有兴趣利用请求stream水线function。 但是,我遇到的一个问题是,直到发送对前一个请求的响应,下一个请求的callback才不会被节点触发。 我想要一个能够做到这一点的方法。 我将在申请中处理结果的sorting。 有没有办法做到这一点? HTTP RFC提到,响应应该是有序的,但是我没有看到node.js没有任何理由不能调用下一个callback,直到第一个响应。 应用程序在理论上可以将对第二个查询的响应作为对第一个响应的响应发送(只要接收者知道这是对第二个响应的响应)。

使用node.js运行许多并行http请求

我的任务是将一个进程分成许多并行运行的小进程,分发给一些从机。 请求通过HTTP进入服务器,服务器把它分成一些发送给从属机器的subprocess,等待所有的从请求返回响应,然后将聚合结果整理成一个数据对象,作为顶级请求。 我认为node.js会很有用,但是因为它是单线程的,所以我不能确定这是否可行,或者是否会阻止等待每个请求返回,然后再转到下一个请求。 这是可能的node.js? 如果是这样,有人能指出我的方向吗? 即节点模块使用或概述如何完成? 谢谢你的帮助。