Tag: http

在Express.js中使用PUT方法

我试图实现一个Express.js应用程序的更新function,我想使用PUT请求来发送新的数据,但我不断收到错误使用PUT。 从我读过的所有内容来看,这只是使用app.put的问题,但这是行不通的。 我的路线文件中有以下内容: send = function(req, res) { req.send(res.locals.content); }; app.put('/api/:company', function(res,req) { res.send('this is an update'); }, send); 当我使用邮递员进行PUT请求时,我得到一个“不能PUT / api / petshop”的错误。 我不明白为什么我不能PUT,或者出了什么问题。

Node.js HTTP2服务器错误:套接字挂断

鉴于具有实验性HTTP2支持的最新版本的Node.js: $ node -v v9.2.0 一个HTTP2服务器: var options = { key: getKey(), cert: getCert(), allowHTTP1: true } var server = http2.createSecureServer(options) server.on('stream', onstream) server.on('error', onerror) server.on('connect', onconnect) server.on('socketError', onsocketerror) server.on('frameError', onframeerror) server.on('remoteSettings', onremotesettings) server.listen(8443) function onconnect() { console.log('connect') } function onremotesettings(settings) { console.log('remote settings', settings) } function onframeerror(error) { console.log('frame error', error) } function onsocketerror(error) […]

Mailchimp API v3.0通过NodeJS http添加电子邮件列表

我正在使用NodeJS来调用新的MailChimp 3.0 API以添加一个电子邮件到列表。 虽然我可以通过POSTMAN得到它,但我很难与Node的http: var http = require('http'); var subscriber = JSON.stringify({ "email_address": "test@test.com", "status": "subscribed", "merge_fields": { "FNAME": "Tester", "LNAME": "Testerson" } }); var options = { host: 'https://us11.api.mailchimp.com', path: '/3.0/lists/<myListID>/members', method: 'POST', headers: { 'Authorization': 'randomUser myApiKey', 'Content-Type': 'application/json', 'Content-Length': subscriber.length } } var hreq = http.request(options, function (hres) { console.log('STATUS CODE: ' […]

Socket.io不设置CORS头(s)

我知道这个问题已经被问了几次了。 但是,我无法得到任何这些解决scheme的工作。 我正在运行node.js和socket.io的标准安装。 (来自Amazon EC2上的yum) 问题在于Chrome正在回退到xhr轮询,并且这些请求需要一个可用的CORSconfiguration。 但是,我似乎无法得到它的工作。 我的Web服务器运行在端口80上,而node.js(socket.io)在端口81上运行。我试图让socket.io使用源策略,如你所见。 我也尝试使用“*:*”作为起源,没有运气。 这是我的代码: var http = require('http'); var io = require('socket.io').listen(81, {origins: '*'}); io.configure( function(){ io.set('origin', '*'); }); io.set("origins","*"); var server = http.createServer(function(req, res) { io.sockets.emit("message", "test"); res.writeHead(200); res.end('Hello Http'); console.log("Message recieved!"); }); server.listen(82); io.sockets.on('connection', function(client) { console.log("New Connection"); }); 非常感谢你!

如何从Node.js发出networking请求时指定networking接口?

在http.request或net.connect ,是否有一个选项可以指定一个networking接口来启动连接? 编辑:操作系统级别AFAIK我可以指定地址级别,或负载平衡到路由表。 但是在我的软件中select接口的方式不止这些,我想知道我是否可以在代码中做到这一点。

Node.js上的HTTP请求getaddrinfo ENOENT错误

以下是我的Node.js HTTP响应请求者的代码。 一旦我使用我明确知道不存在的网站,错误信息会通知我错误: getaddrinfo ENOENT 我想知道更多关于这个错误。 它产生了什么? 什么是错误的细节? 404会产生吗? var hostNames = ['www.pageefef.com']; for (i; i < hostNames.length; i++){ var options = { host: hostNames[i], path: '/' }; (function (i){ http.get(options, function(res) { var obj = {}; obj.url = hostNames[i]; obj.statusCode = res.statusCode; // obj.headers = res.headers; console.log(JSON.stringify(obj, null, 4)); }).on('error',function(e){ console.log("Error: " + hostNames[i] […]

Node.js HTTP获取URL长度限制

在Node.js中进行HTTP GET请求时的大小是否有限制? 如果是的话,我该如何改变呢? var url = "…" // very long, ~50'000 chars http.get(url, function (res) { res.pipe(fs.createWriteStream("file.txt")); }); 给我这个: <html><body><h1>400 Bad request</h1> Your browser sent an invalid request. </body></html> 在PowerShell或Bash中使用wget也是一样的。 $url = "…" wget -outf file.txt $url

Nodejs反向代理性能

我正在研究使用Node作为反向代理的可能性。 我的项目的主要目标之一是它是非常高的性能。 所以我已经设置了一个节点服务器来代理请求到目标节点服务器,无论请求会以“hello world”响应。 使用Apache Bench我已经对每秒处理的请求数做了一些比较。 代理,目标和调用者分别位于AWS的单独M1大型实例中。 我的结果令人沮丧和困惑。 直接从调用者到目标: ab -c 100 -n 10000 http://target-instance/ =〜2600个请求/秒 从调用者通过代理到目标 ab -c 100 -n 10000 http://proxy-instance/ =〜1100个请求/秒 使用lighttpd,我能够在代理和目标上获得约3500次/秒的请求 我对代理服务器性能不如目标服务器感到失望。 当比较像lighttpd这样的其他产品时,我已经看到代理实现了与目标相当的结果,所以我很困惑Node(应该快速减轻)何时达不到。 这里是我在Node v0.5.9中的代理代码:我错过了什么吗? var server = http.createServer(function(req, res){ var opts = { host: 'target-instance', port: 80, path: '/', method: 'GET'}; var proxyRequest = http.get(opts, function(response){ response.on('data', function(chunk){ res.write(chunk); }); […]

Node.js的http.request有什么性能? 它可以处理多less个并发请求?

我的node.js服务器使用最新的(0.4.8)http.request调用来调用另一个服务器。 我使用jMeter来运行负载testing。 每秒有50-100个并发线程,循环1000次。 当脚本继续运行时,我观察到一些减速。 我监测的networking吞吐量相当低,CPU和内存也很低。 而在另一台服务器上,日志显示他们的回应很快。 (毫秒)。 但是,我的node.js服务器中的console.log显示http.request响应时间从200-300 ms开始,到2000-3000 ms。 我不确定是否有可以并发http.request的限制。 请指教。 经过巨大的testing,我认为http.request的平均约300-400个请求/秒,ok服务器,maxSockets = 1024。通常,我看到每个请求的速度(连接到不同的网站)大约是80-100毫秒。

CORS – 与Angular和Express的http选项错误

我正在尝试从Angularjs客户端向我的API进行POST,我在另一个域中运行的服务器上有这个configuration: app.use(function(req, res, next) { res.setHeader('Access-Control-Allow-Origin', '*'); res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, OPTIONS, DETELE'); res.setHeader('Access-Control-Allow-Headers', '*'); next(); }); 发送到服务器的标题是: OPTIONS /api/authenticate HTTP/1.1 Host: xxxx.herokuapp.com Connection: keep-alive Access-Control-Request-Method: POST Origin: http://127.0.0.1:5757 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.93 Safari/537.36 Access-Control-Request-Headers: accept, content-type Accept: */* Referer: http://127.0.0.1:5757/login Accept-Encoding: gzip, deflate, sdch Accept-Language: […]