Tag: http

我应该在node.js上监听哪些端口? 如何和为什么?

我的node.js应用程序,我听港口80 HTTP和443的HTTPS,我相信是相当标准的做法。 然而,我最近阅读的一些例子使用其他端口(例如8080和8081)来监听http / https,然后使用其他方法(例如iptables或ufw规则)通过将数据包路由到其他端口来为端口ufw服务。 在这里和这里看到两个例子。 所以我的问题是为什么我不想直接听港口80和443? 手头有安全问题吗? 这仅仅是这些作者没有权限在低于1024的端口上进行侦听的情况吗(我觉得这很令人惊讶?)? 大多数人是否在边节点上运行Apache? (我不)。 假设有一个很好的理由,为什么我不想直接听80和/或443, 我应该用什么方法将stream量从80/433转发到我select的其他端口? 我已经提到了上面的iptables和ufw,其中一个比其他的更好,还是有其他方法可以使用? 答案取决于我是否在stream程之间平衡了我的负载? 提前致谢。

在Node.Js Express中,“res.render”是否结束http请求?

所以,只有在确定一切已经完成的时候才做“res.render”,对吗? 因为它结束了请求并且射出一个网页。

Express Router CRUD API。 不能删除

那么,我正在阅读MEAN机器书,并遵循它的例子。 我想弄清楚我的代码有什么问题,所以不会发出任何DELETE请求。 GET,PUT和POST的作品应该如此。 我有我的server.js这个代码: app.all('*', function(req, res, next) { res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS'); res.header('Access-Control-Allow-Headers', 'X-Requested-With, content-type, Authorization'); next(); }); var apiRouter = express.Router(); apiRouter.route('/users/:user_id') .get( function (req, res) { User.findById( req.params.user_id, function (err, user) { if (err) res.send (err); res.json(user); }); }) .put( function (req, res) { User.findById(req.params.user_id, function (err, user) […]

node.js – 可能的http服务器内存泄漏

Nodejs版本:0.8.8 这是服务器: var http = require('http'); var port = 1338; var ip = "127.0.0.1"; http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hi there\n'); }).listen(port, ip); 客户端(PHP脚本)卷发到上述服务器的发布请求。 POST是一个string(json),大小约4兆字节。 正如你所看到的,服务器对发布的数据没有任何作用。 为了debugging,我删除了我所有的代码,然后回到hello世界的例子,什么都不做:) 当我看看节点进程的内存使用情况(在活动监视器,Mac应用程序中完成)时,它会报告节点服务器的内存使用量对于每个请求都是较大的。 所以20个请求后,内存使用量翻了一番。

如何在特定的目录上连接/表示使用不到期的caching

我正在开发一个使用connect / express和node.js的应用程序。 它使用这样的“静态”中间件: var express = require("express"); var io = require("socket.io"); var app = express.createServer( express.static(__dirname + '/static') ); app.listen(process.env.PORT || 8080); var listener = io.listen(app); var lobby = listener.of("/lobby"); lobby.on("connection", function (socket) { // etc etc etc }); 在./static ,有一个文件夹,./ ./static/mp3 ,包含了应用程序使用的88个audio文件。 尽pipe返回的访问者已经caching了这些文件,但是我仍然坚信,他们仍然会发送88个http请求来询问他们的caching副本是否过期。 我如何才能执行Expires或max-agecaching,只有这个文件夹?

节点HTTP服务器不工作在Ubuntu Linux上

我想在我的项目目录中运行一个简单的http服务器。 所有我需要的是GET请求支持,所以我可以GET HTML / CSS / JS /等。 为此,我想从npm使用http-server。 我使用npm install http-server -g安装它 现在我cd到我的项目文件夹,它有index.html文件,我打开terminal并运行http-server 但是当我打开我的浏览器在http://localhost:8080/index.html – 它不能连接到主机。 我错过了什么吗?

问题与节点js的http GET请求

即时通讯编写一个HTTP客户端使用node.js从Facebook读取并使用以下代码: var http = require('http'); var options = { host: 'www.fb.com', path: '/', "user-agent": "node.js" }; http.get(options, function(res) { console.log("Got response: " + res.statusCode); console.log(res.headers); }).on('error', function(e) { console.log("Got error: " + e.message); }); 在我的浏览器中,这将返回一个301redirect与www.facebook.com的位置,但是在node.js中,我得到一个302响应,位置为www.fb.com/common/browser.php。 我尝试了最新版本的节点,它仍然会抛出这个错误。 我真的很感谢这个帮助,谢谢。

内存泄漏Meteor.http

当我尝试创build5个并行http请求/秒时,我从Meteor.http.get中获得内存泄漏: gist match_ids.forEach(function(match_id){ var url = self.generateUrl(match_id); Meteor.http.get(url, function(err, response){ if(!err && !response.data.result.error){ callback(null, response.data.result); }else{ callback(err || response.data.result.error, match_id); } }) }); 即使我把速度降低到1个请求/秒,它的performance也是一样的。 Meteor.setInterval(function(){ module.feeder.getMatchesForCarry(); }, 2000); Meteor.setInterval(function(){ Meteor.call("TEMP_d2_match_analyzerInsertSampleData", 9, function(err,response){}); }, 10000); 这个问题的来源是Node还是Meteor? 如果我执行5个请求/秒,在大约5分钟的运行,我得到80-100兆丰满

应提供反向代理标题

我使用节点应用程序中以下模块的revese代理 https://github.com/nodejitsu/node-http-proxy 我的问题是,我是否需要修改标题反向代理的状态像标准工作? http://httpd.apache.org/docs/2.2/mod/mod_proxy.html

在HTTP模式下,node.js是否比Java有更大的性能优势?

我刚刚开始在node.js中编写一段时间。 这是我的一个问题: 在HTTP应用程序中,给定请求 – 响应模型, 单个应用程序线程被阻塞,直到所有的后端任务完成并且响应返回给客户端,所以性能改进似乎仅限于微调后端事物并行IO请求。 ( 当然,这个改进对涉及到很多繁重和独立的 IO操作很重要,但是通常这个条件也意味着通过重新devise数据结构,可以消除大量的IO请求,并且可能最终获得更好的性能而不仅仅是发行并行操作。 ) 如果那是真的,它怎么会比那些基于Java(或PHP,Python等)的框架产生更好的性能呢? 我也参考了一篇文章了解node.js事件循环 ,这也解释了这种情况: 它确实是一个单线程运行:你不能做任何并行的代码执行; 例如做一个“睡眠”会阻塞服务器一秒钟: while(new Date().getTime() < now + 1000) { // do nothing } 然而,除了你的代码之外,所有东西都是平行的。 我亲自证实,通过将“睡眠”代码放入一个IOcallback闭包中,尝试提交导致此callback的请求,然后再提交另一个。 两个请求都会在处理时触发控制台日志。 我的观察是,后者被阻止,直到前者回复。 那么,这是否意味着只有在双方都可以随时发送事件和互相推送消息的套接字模式下,才能充分利用其asynchronous处理能力呢? 我对此有点困惑。 任何意见或build议是受欢迎的。 谢谢! 更新 我问这个问题是因为报告了一些性能评估案例,例如Node.js接pipe了企业 – 无论您是否喜欢 ,以及LinkedIn从Rails移动到Node:27服务器的速度提高了20倍 。 一些激进的观点声称,J2EE将被完全取代: J2EE已经死了:由JSON服务支持的长寿命的Javascript 。