Articles of http

NodeJS – 如何stream缓冲请求主体

在下面的代码中,我不知道为什么req.pipe(res)不起作用,但也不会抛出一个错误。 一个预感告诉我,这是由于nodejs的asynchronous行为,但这是一个非常简单的情况下没有callback。 我错过了什么? http.createServer(function (req, res) { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.write('Echo service: \nUrl: ' + req.url); res.write('\nHeaders:\n' + JSON.stringify(req.headers, true, 2)); res.write('\nBody:\n'); req.pipe(res); // does not work res.end(); }).listen(8000); 这是curl: ➜ ldap-auth-gateway git:(master) ✗ curl -v -X POST –data "test.payload" –header "Cookie: token=12345678" –header "Content-Type:text/plain" localhost:9002 这是debugging输出(请参阅上传的主体): About to connect() to localhost port […]

Express(node.js)使用HTTPS和HTTP

我在node.js上使用express(3.0)框架来路由我的应用程序。 我的大部分应用程序都使用http协议,但是我只想通过https服务一条特定的路线。 这是我的API的一部分,它负责注册和authentication用户。 例如: app.get('/connect', function(req, res){ // Must be on HTTPS, if not redirect to HTTPS }); app.post('/connect', function(req, res){ // Must be on HTTPS }); app.get('/', function(req, res){ // Must be on HTTP }); app.get('/build', function(req, res){ // Must be on HTTP }); 如何在同一个应用程序中使用两者? 我正努力在野外find任何这样的例子。

为返回JSONP的Restful api节点HTTP请求

我正在尝试使用node.js将服务器端调用到restful API。 使用JSONP(JS函数中的JSON容器)返回正在返回的错误,这似乎是节点http.get(options,callback)API的核心。 节点或任何模块能否从JSONP返回JSON对象? 示例JSONP请求: http : //www.linkedin.com/countserv/count/share? url= http : //techcrunch.com/2012/01/29/turning-two-founderscard-pulls-back-the-curtain-在其通会员制社区的创业者/

快速请求被调用两次

为了学习node.js我创build了一个小应用程序,它获取mongoDB中存储的一些rss提要,处理它们并从这些提要中创build一个单一提要(按datesorting)。 它parsing了大约50个RSS提要的列表,大约有1000个博客项目,所以parsing整个项目是相当长的,所以我把下面的req.connection.setTimeout(60*1000); 得到足够长的时间来获取和parsing所有的提要。 一切运行相当好,但要求被称为两次。 (我用wireshark检查,我不认为这是关于favicon这里)。 我真的不明白。 你可以在这里testing你自己: http : //mighty-springs-9162.herokuapp.com/feed/mde/20 (它应该创build一个rss饲料与最后20篇关于“mde”的文章)。 代码在这里: https : //github.com/xseignard/rss-unify 如果我们专注于有趣的部分: 我有一个像这样定义的路线: app.get('/feed/:name/:size?', topics.getFeed); 而topics.getFeed就是这样的: function getFeed(req, res) { // 1 minute timeout to get enough time for the request to be processed req.connection.setTimeout(60*1000); var name = req.params.name; var callback = function(err, topic) { // if the topic has been […]

我一直收到我的reCAPTCHAvalidation请求上的“invalid-site-private-key”

也许你们可以帮助我。 我正在尝试在我的node.js应用程序中实现reCAPTCHA,无论我做什么,都会收到“invalid-site-private-key”作为响应。 这里是我加倍和检查和尝试的事情: 正确的钥匙 密钥不交换 键是“全局键”,因为我在本地主机上testing,认为这可能是一个问题 在服务器上的生产环境中testing – 同样的问题 我能想到的最后一件事是我的POST请求reCAPTCHA API本身是不正确的,因为具体格式的身体没有明确logging(参数logging,我知道)。 所以这是我目前正在发送的请求主体(密钥和IP被更改,但是我检查了他们): privatekey=6LcHN8gSAABAAEt_gKsSwfuSfsam9ebhPJa8w_EV&remoteip=10.92.165.132& challenge=03AHJ_Vuu85MroKzagMlXq_trMemw4hKSP648MOf1JCua9W-5R968i2pPjE0jjDGX TYmWNjaqUXTGJOyMO3IKKOGtkeg_Xnn2UVAfoXHVQ-0VCHYPNwrj3PQgGj22EFv7RGSsuNfJCyn mwTO8TnwZZMRjHFrsglar2zQ&response=Coleshill areacce 这种格式有什么问题吗? 我必须发送特殊的标题吗? 我完全错了吗? (我现在正在连续工作16个小时,所以这可能是..) 感谢您的帮助!

Nodejs nohup没有例外地死亡

我正在写我的第一个NodeJS应用程序,但由于某种原因,它似乎在短时间内意外死亡。 我不知道是什么原因造成的。 这个过程运行良好,甚至按预期工作,然后由于某种原因,它停止。 nohup日志不显示错误或任何反馈。 我曾尝试在debugging模式下运行,但它是一样的,没有任何信息。 跟踪没有帮助。 我通过nohup运行进程: nohup node app.js & 码: var http = require('http'); var server = http.createServer().listen(8000); var io = require('socket.io').listen(server); var cookie_reader = require('cookie'); var querystring = require('querystring'); // Store the session cookie set by Django io.configure(function(){ io.set('authorization', function(data, accept){ if(data.headers.cookie){ data.cookie = cookie_reader.parse(data.headers.cookie); return accept(null, true); } return accept('error', false); […]

用Node.js /强大的中止用户请求

我正在使用强大的接收与node.jsfile upload。 我在一个多部分请求中将一些字段与一个文件一起发送。 只要某些字段到达,我就可以validation请求的真实性,如果不正确,我想中止整个请求,以避免资源浪费。 我还没有find正确的方法来中止传入的请求。 我试图使用req.connection.destroy(); 如下: form .on('field', function(field, value) { fields[field] = value; if (!fields['token'] || !fields['id'] || !fields['timestamp']) { return; } if (!validateToken(fields['token'], fields['id'], fields['timestamp'])) { res.writeHead(401, {'Content-Type' : 'text/plain' }); res.end('Unauthorized'); req.connection.destroy(); } }) 但是,这会触发以下错误: events.js:45 throw arguments[1]; // Unhandled 'error' event ^ Error: Cannot resume() closed Socket. at Socket.resume (net.js:764:11) […]

节点代理networking套接字如何检查

我使用下面的模块,它适用于反向代理https://github.com/nodejitsu/node-http-proxy目前我已经使用下面的代码示例 httpProxy.createServer({ target: 'ws://localhost:9014', ws: true }).listen(8014); 我的问题是我如何检查/模拟 websockets工作? 任何testing将有帮助…

使用Node.js http.get时,套接字不会显示为closures状态

OS X 10.8.3 节点0.10.0 我正在使用“http”模块来提出FacebookgraphicsAPI的请求。 以下是我传递给“http.get”的选项: var options = {host: 'graph.facebook.com', port: 80, path: '/' + fb_id + '/picture'}; //fb_id is a Facebook user identifier 我的代码如下所示: http.get(options, function(res) { …some stuff… DONE(RESULT); //DONE is a callback function }).on('error', function(e) { …some error handling… }); 我所观察到的是,我只能做和http.globalAgent.maxSockets一样多的请求。 一旦我达到了这么多的请求,下一个调用http.get永远(显然)连接。 我已经validation,我没有收到错误的请求。 就好像响应进入后套接字没有closures。 有什么我需要做的响应处理程序,以确保套接字的一部分? 这些套接字是否因为默认的keepalive行为而closures? 我应该如何进行debugging呢?

使用Res.Render Nodejs Express返回错误代码

我用express来使用nodejs。 我想返回一个自定义的404找不到错误页面。 我有它的工作。 但是我还没有find如何返回与res.render()错误代码的解决scheme。 我看到了一些类似的问题,但他们是旧的,并使用不推荐的方法。 任何帮助将不胜感激。