You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
871 B
46 lines
871 B
|
|
/*! |
|
* Connect - cookieParser |
|
* Copyright(c) 2010 Sencha Inc. |
|
* Copyright(c) 2011 TJ Holowaychuk |
|
* MIT Licensed |
|
*/ |
|
|
|
/** |
|
* Module dependencies. |
|
*/ |
|
|
|
var utils = require('./../utils'); |
|
|
|
/** |
|
* Parse _Cookie_ header and populate `req.cookies` |
|
* with an object keyed by the cookie names. |
|
* |
|
* Examples: |
|
* |
|
* connect.createServer( |
|
* connect.cookieParser() |
|
* , function(req, res, next){ |
|
* res.end(JSON.stringify(req.cookies)); |
|
* } |
|
* ); |
|
* |
|
* @return {Function} |
|
* @api public |
|
*/ |
|
|
|
module.exports = function cookieParser(){ |
|
return function cookieParser(req, res, next) { |
|
var cookie = req.headers.cookie; |
|
if (req.cookies) return next(); |
|
req.cookies = {}; |
|
if (cookie) { |
|
try { |
|
req.cookies = utils.parseCookie(cookie); |
|
} catch (err) { |
|
return next(err); |
|
} |
|
} |
|
next(); |
|
}; |
|
}; |