54 lines
1.3 KiB
JavaScript
54 lines
1.3 KiB
JavaScript
'use strict'
|
|
|
|
/**
|
|
* Module dependencies.
|
|
*/
|
|
|
|
var express = require('../../');
|
|
var app = module.exports = express();
|
|
var logger = require('morgan');
|
|
var cookieParser = require('cookie-parser');
|
|
|
|
// custom log format
|
|
if (process.env.NODE_ENV !== 'test') app.use(logger(':method :url'))
|
|
|
|
// parses request cookies, populating
|
|
// req.cookies and req.signedCookies
|
|
// when the secret is passed, used
|
|
// for signing the cookies.
|
|
app.use(cookieParser('my secret here'));
|
|
|
|
// parses x-www-form-urlencoded
|
|
app.use(express.urlencoded())
|
|
|
|
app.get('/', function(req, res){
|
|
if (req.cookies.remember) {
|
|
res.send('Remembered :). Click to <a href="/forget">forget</a>!.');
|
|
} else {
|
|
res.send('<form method="post"><p>Check to <label>'
|
|
+ '<input type="checkbox" name="remember"/> remember me</label> '
|
|
+ '<input type="submit" value="Submit"/>.</p></form>');
|
|
}
|
|
});
|
|
|
|
app.get('/forget', function(req, res){
|
|
res.clearCookie('remember');
|
|
res.redirect(req.get('Referrer') || '/');
|
|
});
|
|
|
|
app.post('/', function(req, res){
|
|
var minute = 60000;
|
|
|
|
if (req.body && req.body.remember) {
|
|
res.cookie('remember', 1, { maxAge: minute })
|
|
}
|
|
|
|
res.redirect(req.get('Referrer') || '/');
|
|
});
|
|
|
|
/* istanbul ignore next */
|
|
if (!module.parent) {
|
|
app.listen(3000);
|
|
console.log('Express started on port 3000');
|
|
}
|