Tag: 表示

Mongoose Js MongoDB GZip响应

只是另一个性能问题。 我们有多层架构。 我们使用mongoDB来caching内容。 目前适合我们。 我们在我们的api服务器上使用mongoose js进行连接和查询。 我的问题是,mongoose是否要求mongo以优化的方式通过线路发送数据? (即接受编码:gzip,放气) mongoDB是否通过端口27017响应接受编码? 我认为接受编码是HTTP 1.1协议定义。 在这种情况下,我假设mongoose只是在没有任何压缩的情况下查询mongodb。 不知道如何testing这个,我只是做了一些业余的基准和假设。 MongoDB Server的上传速度和API Server的下载速度是1.3MB / s。 我要求的数据大小约为5MB。 包括在API服务器端的数据处理,这个数据的总处理时间是4秒。 这很多时间! 任何帮助如何进一步基准或压缩在mongoose! 会很有帮助 非常感谢, KARTHIK

改写玉父模板加载机制

我想知道是否有可能重写机制玉装载模板inheritance。 想想下面的代码片段: extends layout block stuff h1 My stuff 如果保存为/dir/template.jade会查找/dir/layout.jade ,我想要的是在渲染过程中从数据库加载layout.jade 。 所以我正在寻找像这样的东西: jade.render( "…", { loadParent: function( path ) { return db.get({ id: path }); } }); 我在文档中找不到任何提示。 你有没有听说过这样的事情? 期待收到您的来信,Dominik

使用Node / Express路由+ HIJAX模式进行渐进式增强?

我知道我会得到一些对此的极化反应,但是有可能使用逐步增强,即HIJAX模式( 应用于PE的AJAX )和像Express一样的节点路由中间件? 你仍然可以在Node / Express等中使用正常的服务器POST / GET /请求,而在AJAX中分层拦截? (请阅读HIJAX链接了解具体情况)。 另见: https : //developer.yahoo.com/blogs/ydnfourblog/many-users-javascript-disabled-14121.html

当点击一个表单提交button时,启动一个远程引导模式,然后远程模式内容显示表单数据?

我很难find一种方法来实现这一点。 我正在使用Node.js,Bootstrap 3,并表示 我想从一个表单页面开始。 当用户填写表单时,他们点击提交。 在这里,我想发射一个远程模式。 (从常规链接或button完成此操作无困难。) 这启动了一个职位。 那么我怎样才能启动远程模式,并将表单数据从post传递给它,这样一个带有答案的新的远程页面就可以显示在原始表单页面的模式窗口中。 这里是我有的代码: forms翡翠(cover-form.jade): html head meta(name="viewport" content="width=device-width, initial-scale=1.0") title= title link(href="/stylesheets/coverform_custom.css" rel="stylesheet") body .modal.fade(id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true") .modal-dialog.wide-modal .modal-content form.form-horizontal(id="coverform" name="coverform" method="post" action="") .LoginBox.LoginText fieldset.animated.fadeInUp // Form Name legend.LoginText  Cover Strategy // Text input .form-group label.col-xs-4.control-label(for='symbol') Stock Ticker: .col-xs-5 input#symbol.form-control.input-xs(type='text', name='symbol', placeholder='example: AAPL', autofocus, required) span.help-block […]

Express 4 +护照,req.user未定义 – 函数调用顺序?

我遇到了一个非常奇怪的问题。 我正试图让快递+护照工作。 由于绝大多数的在线示例都是针对快递3的,因此这个过程花了我一些时间 – 最终我获得了Google身份validation的function。 我试图将Google帐户绑定到本地帐户,该帐户需要从MongoDBsearch帐户。 以下是可用的代码部分: //Serialize function passport.serializeUser(function(user, done) { done(null, user); }); //Deserialize function passport.deserializeUser(function(obj, done) { done(null, obj); }); //Strategy passport.use(new GoogleStrategy({ returnURL: 'http://localhost:8000/auth/google/return', realm: 'http://localhost:8000/' }, function(identifier, profile, done) { process.nextTick(function() { profile.identifier = identifier; return done(null, profile); }); } )); 以下代码已经过validation可以使用。 一切都像一个魅力。 但是,当我修改代码如下: passport.serializeUser(function(user, done) { done(null, user.id); }); […]

Socket.IO + Express:获取与快速会话关联的套接字

我正在寻找从快速http路由处理程序提出应用程序范围内的事件。 例如,用户修改logging,并将事件发送给任何其他感兴趣的用户。 在某些情况下,我想广播给所有客户端,除了(http)请求的客户端。 这可以通过广播针对您希望排除的套接字来实现,但是我目前无法访问与会话validationhttp请求相关联的套接字。 我见过一些例子 ,演示了如何从套接字请求中为用户检索快速会话(即从cookie中获取会话ID,从sessionStore中检索会话)。 是否有可能在反向工作,并可能存储socketId对会议以供日后检索? 任何人都可以用这种方法识别任何即时的警告或陷阱? 如果套接字是通过一个redis存储分布在不同的服务器上的,那么也会产生什 我可以预见,每个用户的http请求都会通过套接字请求进入不同的节点。 非常感谢!

如何合并两个节点服务器文件?

我在node.js上工作。 我有两个服务器用于我自己的节点基础应用程序,一个用于基于VOIP linphonenetworking节点的应用程序。 我想合并这两个服务器,并希望在同一个端口上运行,但有一些问题,我自己的应用程序服务器需要“HTTP”,但linphone服务器需要“快速”库。 我的应用程序节点服务器代码 var http = require("http"); var fs = require("fs"); var path = require("path"); var url = require("url"); var mimeTypes = { "html": "text/html", "jpeg": "image/jpeg", "jpg": "image/jpeg", "png": "image/png", "js": "text/javascript", "css": "text/css" }; var server = http.createServer(function(request, response) { var uri = url.parse(request.url).pathname; //uri = "www/" + uri; if (uri.charAt(uri.length […]

在Ubuntu上使用节点缓慢的静态文件服务

我们使用Testem来提供一堆HTML文件(模板)。 Testem使用Express的“res.sendfile”方法将静态文件发送回客户端。 在Mac机器上,速度非常快 – 根据Chromenetworking跟踪,每个文件需要1-2毫秒。 但是,在Ubuntu机器上,需要39ms。 这是最新的稳定节点 – 0.10.29。 Testem正在使用Express 3.1。 有什么build议可能会导致这种情况,或者我如何进一步诊断?

node.js Express中的正确方法是在执行耗时的post时显示微调。

我有一个post可以启动一个可能需要半分钟的大型处理任务。 什么是正确的方式发回到微调的响应,然后当任务完成redirect或显示结果? 我应该在临时视图上使用render(),然后在任务完成时asynchronous使用redirect()吗? 这是我到目前为止的代码: exports.postForm = function (req, res) { console.log('postForm'); logger.info('Request Data:' + JSON.stringify(req.body)); // Do big task here… but how to tell user its happening? }; 更新 – 关于问题的更多细节: 所以我的具体问题是这样的:当我点击提交button,post回到这个路线在Express中。 无论我想要什么,我都可以发送内容或redirect。 说我redirect到一个“处理”页面,然后启动asynchronous调用来启动数据收集。 那么如何做到这一点,我可以再次redirect到“处理完成”页面吗? 我怀疑我可能需要在Socket.IO中完成所有这些操作,而不是使用html post提交表单。 我想我可以“点击”使用socket.io提交数据,然后我可以在一个AJAX像时尚重写网页的一部分,以表明“处理”,然后当我通过套接字说事件完成说。我可以重写页面再说完成。 这看起来是最好的方式吗?

我可以在Express中添加路线描述吗?

我只是通过这篇博客发现了一个很好的窍门。 现在,快递之后,我有这个简单的印刷品: var routes = app._router.stack; var Table = require('cli-table'); var table = new Table({ head: ["Name"] }); //var table = new Table({ head: ["Name", "Description"] }); for (var key in routes) { if (routes.hasOwnProperty(key)) { var val = routes[key]; if(val.route) { var _o = [val.route.path]; // but I'd like it to be: //var _o […]