Tag: 连接

在Express或Connect中添加一堆属性以请求是不好的做法?

例如,假设您使用winston进行日志logging,而不是让每个中间件都需要日志logging器,则可能有一个(上游)中间件将其添加到request对象中,以便其他中间件可以执行: request.logger.log(…) 这是好还是不好的做法?

检测成功读取stream打开

我正在为Express.js实现静态服务中间件的caching,其工作原理如下 – 请求到达时,中间件首先尝试从文件系统提供文件,如果没有,则从上游提取文件并存储在文件系统中。 问题是我不知道如何正确检测“caching命中”事件。 staticMiddleware = function(req, res, next) { // try to read file from fs filename = urlToFilename(req.url); stream = fs.createReadStream(filename); // cache miss – file not found stream.on('error', function() { console.log('miss ' + req.url); // get file from upstream, store it into fs and serve as response stream = fetchFromUpstream(url); stream.pipe(fs.createWriteStream(filename)); stream.pipe(res); […]

如何使用grunt连接angularjs文件

我有一个angularjs应用程序。 我想连接所有的angularjs文件到单个文件。 我正在使用grunt并search关于连接grunt插件。 我发现有grunt-contrib-concat和grunt-concat-in-order插件。 但是,我无法find关于如何连接依赖文件的例子的答案。 请让我知道如何使用grunt-concat-in-order插件指定依赖关系。 注意:在grunt-concat-in-order文件中,它指出了指定framework.require(“moduleA”)。 但不知道什么框架。 有没有什么有效的方法来指定一个文件中的依赖关系? 在此先感谢Rajaguru

Node.js Express + Passport + Cookie会话n> 1个服务器

从护照文档: 在典型的Web应用程序中,用于authentication用户的凭证只会在login请求期间传输。 如果validation成功,会话将通过在用户浏览器中设置的cookie来build立和维护。 每个后续请求将不包含凭据,而是标识会话的唯一Cookie。 为了支持login会话,Passport将序列化和反序列化会话中的用户实例。 因此,鉴于身份validation是在客户端的浏览器中维护的,我应该能够将Web服务器扩展到大于1(每个服务器使用相同的数据库),并且Passport将用户从存储在cookie中的ID反序列化,而不pipe服务器是否看到用户之前。 如果服务器之前见过用户,但没有cookie,我希望Passportauthentication失败,但是我甚至不能用n> 1的服务器获得这么多。 1服务器进程,护照工作正常: 服务器或多或less是两个服务器上的文档的完整文档(经过大量的试验,连接参考文献等): app.configure(function() { app.use(express.static('public')); app.use(express.cookieParser()); app.use(express.bodyParser()); app.use(express.session({ secret: 'keyboard cat' })); app.use(passport.initialize()); app.use(passport.session()); app.use(app.router); }); 当用户login成功时,在我返回HTTP请求之前,我logging了req.user和req.session : console.log(req.user); console.log(req.session); res.send(200, req.user); // {"cookie":{ // "originalMaxAge":null, // "expires":null, // "httpOnly":true, // "path":"/" // }, // "passport":{"user":"ID"}} 当HTTP请求返回时,Web应用程序请求/并期望服务器从传递的cookie中设置具有ID ID req.user : passport.deserializeUser(function(req, user_id, cb) { console.info('Passport deserializing user: […]

Android Node.js Socket.io不能连接

我有一个Node.js服务器使用socket.io和一个Android应用程序。 我想我的应用程序连接到服务器。 (我在当地工作) 所以首先我启动服务器: 命令提示符 这是它的代码: var express = require('express'); // call express var app = express(); var http = require('http').Server(app); var io = require('socket.io')(http); var port = process.env.PORT || 1234; app.get('/',function(req,res){ res.send("Welcome to my socket"); }); io.on('connection', function (socket) { console.log('one user connected : '+socket.id); // when the client emits 'new message', this listens […]

找不到兼容版本:mongodb@3.2.8

从npm的错误消息说,最新版本的mongodb是2.2.6? 我试过“npm install -g npm”:现在是npm@3.10.6 更新所有其他的东西。 还是行不通。 我的本地mongodb版本是3.2.8,最新的一个。 我是NodeJS的新手。 当我尝试编写“package.json”文件时,是否必须写入与“”mongodb“:”3.2.8“”相同的版本? 我之所以想要安装3.2.8版本,是因为我得到了“拒绝连接问题”,看到有人在网上说我们应该有和已经安装的mongodb版本相同的版本。 总之,我可能需要“npm安装”mongodb 3.2.8,但我不能因为没有find。

我如何避免node.js中的竞争条件,当我通过socket.io操纵会话?

我在我的socket.io安装程序中使用这个授权function: io.set('authorization', function (data, accept) { if (!data.headers.cookie) { return accept('Session cookie required.', false); } data.cookie = require("cookie").parse(data.headers.cookie); data.cookie = require("connect").utils.parseSignedCookies(data.cookie,"yeah whatever"); data.sessionID = data.cookie['connect.sid']; sessionStore.get(data.sessionID, function(err, session){ if (err) { return accept('Error in session store.', false); } else if (!session) { return accept('Session not found.', false); } // success! we're authenticated with a known […]

如何写一个只会捕获行为的快速路由中间件?

我正在使用以下中间件: app.use(function(req,res,next){ console.log(req.url) next() }); 但它捕捉每一个请求,包括图像/ CSS / JS等… 如果我只是想要采取行动,我该怎么办?

我在哪里可以find“标题”事件的文档?

ConnectJS使用res.on('header'…事件对响应进行一些后处理,我在NodeJS文档中search了很多,但是在任何地方都找不到这个事件,有人能指点我一些文件为此?

Cookie和CookieSession之间的区别?

cookieSession和cookie之间有什么区别?