Tag: 连接

expressjs从子域中删除Cookie

我通过子域提供我应用上的所有静态内容。 不过,我的快车应用程序仍然在静态内容上设置会话cookie。 我尝试按照文档设置path: app.use(express.session({ secret: 'your app secret', cookie: { domain : '.yourdomain.com' }, store: new MongoStore({ db: 'db', host: 'localhost', port:config.dbPort }) })); 但它仍然不适合我。 我也尝试使用“path”: cookie: { path : '.yourdomain.com' } 但即使这样也不能阻止在静态内容上设置Cookie。 有关如何从所有静态内容中删除cookie的任何想法? 更新: Request Headers Accept:text/css,*/*;q=0.1 Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3 Accept-Encoding:gzip,deflate,sdch Accept-Language:en-US,en;q=0.8 Connection:keep-alive Host:cdn.yourdomain.com Referer:http://localhost:8888/ User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.5 (KHTML, like Gecko) […]

如何获得不更新会话的Express / Connect路由

我正在构build一个单页JavaScript应用程序,在后端与Express交谈。 在应用程序的不同点,我们与后端进行交互,更新会话。 由于安全原因,会话过期相对较短。 其中,我想提醒用户,如果会话已经闲置了很长时间,并且没有与后端进行交易,会话可能会过期。 我想有一个快速“心跳”路线,返回会话剩余多久(session.maxAge),但我不希望它刷新会话到期。 connect.session代码在请求结束时自动刷新会话。 我正在寻找一种方法来访问会话来获取maxAge,但没有更新。

connect-redis和快速会话

在node / express方面有点新鲜,我一直在为自己做一个项目,以确保我的基础已经完成。 目前,我真的专注于会议。 我有一个通过redis设置的后端会话存储,并使用connect-redis来简化应用程序中的内容。 我一直玩的cookie maxAge和connect-redis TTL并有一个(希望简单)的问题。 设置connect-redis TTL选项和 cookie maxAge还是maxAge是最好的做法? 强制性代码: app.use(express.session({ secret:'stackoverflowrulz', store: new RedisStore({ host: 'example.com', port: 6379, client: redis, ttl: 3600000 }), cookie: { maxAge: 3600000 } })); 这似乎是maxAge cookie设置“stream通”基于我在附近的第118行看到的redis源代码,但我不是一个专家编码器,我无法find书面文件来确认我认为我正在阅读。

使用Express JS级联式渲染

通过运行在节点服务器上的快速应用程序,我将如何从完整pathrecursionsearch渲染文件,直到所提供的URL的开头。 例如,如果有人用www.somewebsite.com/shop/products/product打我的服务器,渲染引擎会首先检查shop / products / product /中是否有index.jade文件。 如果没有find,它会检查商店/产品/,然后购物/。 var express = require('express'); var app = express(); app.get('/*', function(req, res){ res.render(req.path + '/index.jade', function(err, html){ // some loopback code which alters the path and recalls the render method }) }); 问题是响应对象没有传递给渲染callback,所以我无法回想回应的渲染。 我正在寻找创build一个循环,因为URLpath可能是任何数量的目录深,所以我不能只是假设我只需要级联一个明确的次数。 任何人都看到了这个方法?

如何在subprocess间共享一个mongoose连接?

我有以下db.js模块,照顾mongoose的连接: 'use strict'; module.exports = function(config) { var mongoose = require('mongoose'); //mongoose.connect(config.connectionString); var db = mongoose.connection; db.open(config.server, config.database, config.port, {user: config.user, pass: config.password}); db.on('error', console.error.bind(console, 'connection error:')); db.once('open', console.log.bind(console, 'connected to database server ' + config.server)); }; 在我的app.js中,我简单地调用var db = require('./db')(config.db); ,在我的应用程序中的所有模型运​​行良好。 对于一些后台作业,我分叉了一堆subprocess(使用worker-farm ),并且由于我不知道如何传递连接对象(或者甚至是否允许),我在每个连接对象中打开一个连接db.js)。 问题是,过了一段时间,我开始经历每个subprocess的{ [Error: Trying to open unclosed connection.] state: 1 } 。 […]

在套接字重新连接上设置集合:会话时设置TTL索引时出错

我有一个与mongoose和socket.io节点的应用程序。 应用程序工作正常,但如果以某种方式套接字断开连接,而试图重新连接下面的错误被抛出。 如果我永远运行这个下,应用程序将重新启动,但一段时间后,它会抛出相同的错误,将继续在循环中。 node_modules\connect-mongo\lib\connect-mongo.js:161 throw new Error('Error setting TTL index on collection : ' + s ^ Error: Error setting TTL index on collection : sessions 我尝试了其他的解决scheme,但没有运气。 这里是一些configuration。 的package.json "dependencies": { "express": "3.1.1", "passport": "0.1.16", "passport-local": "0.1.6", "mongoose": "latest", "connect-mongo": "latest", "async": "latest", "express-validator": "~0.3.2", "express-mailer": "~0.2.0", "bcrypt": "~0.7.5", "socket.io": "latest", "nodemailer": "latest", "underscore": "latest" […]

如何在Grunt中closures连接服务器?

我在连接服务器上运行量angular器testing,因为没有像在业力内置的web服务器。 没有问题,只有在完成运行testing后,因果报应closures了它的Web服务器,但量angular器中没有这样的机制。 我想在连接服务器上运行量angular器testing,然后旋转另一个连接服务器,可能使用不同的configuration。 到目前为止,我已经成功地在另一个端口上运行另一个连接服务器,但是我仍然有两个并排运行的连接服务器,我想closures一个用于testing的连接服务器。 这是我的连接configuration: connect: { test: { options: { port: 8001, } }, production: { options: { port: 8000, keepalive: true, } } } 和我的咕tasks任务: grunt.registerTask('default', ['jshint', 'karma:unit', 'clean', 'requirejs', 'concat', 'uglify', 'connect:test', 'protractor:e2e']); grunt.registerTask('preview-live', ['default', 'connect:production']); 我看了一下Keepalive选项, 滚动了我自己的甚至是咕噜咕噜的事件,但我仍然无法弄清楚如何去做这件事。

Node.js连接不正确的服务图像

我目前正在尝试使用Node.js和连接编写一个非常简单的Web服务器,基本上只是静态地提供一个目录。 var server = connect.createServer(); server.use(connect.logger()); server.use(connect.static(DOCUMENT_ROOT)); server.listen(SERVER_PORT); 这基本上是工作,我可以连接到服务器和它的服务index.html给我。 当我尝试提供图像(无论是在HTML或直接打开他们的url)时,会发生问题。 他们服务,但似乎并不完全,产生这样的结果: 我看着头,但找不到任何明显的缺陷。 正确的内容大小是在那里,我唯一觉得很奇怪的是内容types似乎丢失,但似乎浏览器正确地计算出来。 有趣的是,如果我手动提供图像,它的工作。 所以使用这个代码图像是正确的: var server = connect.createServer(); server.use(connect.logger()); server.use(function(req, res, next) { console.log(req.url); if (req.url != "/testimage.png") { next(); return; } var data = fs.readFileSync(DOCUMENT_ROOT + req.url); res.writeHead(200, {'Content-Type': 'image/png'}); res.write(data); res.end(); }); server.use(connect.static(DOCUMENT_ROOT)); server.listen(SERVER_PORT); 任何想法,为什么连接图像不起作用? 由于这是一个相当小的例子,我觉得奇怪它不工作…。 我了解连接有问题吗? 更新 我追查了一下。 这似乎是发送模块的stream媒体组件的一个问题 – 它从来没有停止stream式传输文件,但无休止地重复它。 […]

为什么超时错误作为顶级中间件?

超时中间件: https : //github.com/expressjs/timeout#api似乎有用的挂起http请求超时。 但是,中间件文档提到使用它作为顶级中间件是不好的( https://github.com/expressjs/timeout#api ) 注意这个模块不推荐作为“顶级”中间件(即不build议用作app.use(timeout(5000)))。 任何想法为什么? 让我怀疑它是否应该在任何级别使用。

用hapi随时编译coffeescript?

是否有一个hapi的插件,可以根据需要将coffeescript编译成JS? 我知道连接咖啡脚本和咖啡中间件 ,只是寻找与hapi,我相信不是build立在连接上的作品。