Tag: express

如何与Socket.IO 1.x和Express 4.x共享会话?

如何与Socket.io 1.0和Express 4.x共享会话? 我使用Redis商店,但我相信这不重要。 我知道我必须使用中间件来查看cookie和获取会话,但不知道如何。 我搜查,但找不到任何工作 var RedisStore = connectRedis(expressSession); var session = expressSession({ store: new RedisStore({ client: redisClient }), secret: mysecret, saveUninitialized: true, resave: true }); app.use(session); io.use(function(socket, next) { var handshake = socket.handshake; if (handshake.headers.cookie) { var str = handshake.headers.cookie; next(); } else { next(new Error('Missing Cookies')); } });

正确的方法来设置响应状态和JSON内容的REST API使用nodejs和express

我正在玩Nodejs,并通过构build一个小的restAPI来expression。 我的问题是,设置代码状态以及响应数据的最佳做法/最佳方法是什么? 让我用一点代码解释一下(我不会把启动服务器所需的节点和expression式代码,只是所关心的路由器方法): router.get('/users/:id', function(req, res, next) { var user = users.getUserById(req.params.id); res.json(user); }); exports.getUserById = function(id) { for (var i = 0; i < users.length; i++) { if (users[i].id == id) return users[i]; } }; 下面的代码完美的工作,当发送邮递员的请求时,我得到以下结果: 正如你所看到的,状态显示200,这是OK的。 但这是做到这一点的最好方法吗? 有没有这样的情况,我应该自己设置状态,以及返回的JSON? 还是总是用快递处理? 例如,我刚做了一个快速testing,稍微修改了上面的get方法: router.get('/users/:id', function(req, res, next) { var user = users.getUserById(req.params.id); if (user == null […]

允许CORS REST请求到Heroku上的Express / Node.js应用程序

我在node.js的快速框架上编写了一个REST API,这个框架适用于Chrome中js控制台的请求和URL栏等等。我现在试图让它适用于来自另一个应用程序的请求域(CORS)。 第一个由javascript前端自动创build的请求是/ api / search?uri =,并且在“预检”选项请求中显示为失败。 在我的快速应用程序中,我添加CORS标题,使用: var allowCrossDomain = function(req, res, next) { res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS'); res.header('Access-Control-Allow-Headers', 'Content-Type, Authorization, Content-Length, X-Requested-With'); // intercept OPTIONS method if ('OPTIONS' == req.method) { res.send(200); } else { next(); } }; 和: app.configure(function () { app.use(express.bodyParser()); app.use(express.methodOverride()); app.use(app.router); app.use(allowCrossDomain); app.use(express.static(path.join(application_root, "public"))); app.use(express.errorHandler({ dumpExceptions: true, showStack: true […]