Skip to content
Closed
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ jobs:

- name: Run lint
run: npm run lint
- name: Format code
run: npm run format

test:
strategy:
Expand Down
1 change: 1 addition & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules/
9 changes: 9 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"trailingComma": "all",
"tabWidth": 2,
"semi": true,
"useTabs": false,
"singleQuote": true,
"printWidth": 80,
"jsxSingleQuote": false
}
7 changes: 3 additions & 4 deletions benchmarks/middleware.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

var express = require('..');
var app = express();

Expand All @@ -8,13 +7,13 @@ var n = parseInt(process.env.MW || '1', 10);
console.log(' %s middleware', n);

while (n--) {
app.use(function(req, res, next){
app.use(function (req, res, next) {
next();
});
}

app.use(function(req, res){
res.send('Hello World')
app.use(function (req, res) {
res.send('Hello World');
});

app.listen(3333);
64 changes: 34 additions & 30 deletions examples/auth/index.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
'use strict'
'use strict';

/**
* Module dependencies.
*/

var express = require('../..');
var hash = require('pbkdf2-password')()
var hash = require('pbkdf2-password')();
var path = require('path');
var session = require('express-session');

var app = module.exports = express();
var app = (module.exports = express());

// config

Expand All @@ -18,16 +18,18 @@ app.set('views', path.join(__dirname, 'views'));

// middleware

app.use(express.urlencoded())
app.use(session({
resave: false, // don't save session if unmodified
saveUninitialized: false, // don't create session until something stored
secret: 'shhhh, very secret'
}));
app.use(express.urlencoded());
app.use(
session({
resave: false, // don't save session if unmodified
saveUninitialized: false, // don't create session until something stored
secret: 'shhhh, very secret',
}),
);

// Session-persisted message middleware

app.use(function(req, res, next){
app.use(function (req, res, next) {
var err = req.session.error;
var msg = req.session.success;
delete req.session.error;
Expand All @@ -41,7 +43,7 @@ app.use(function(req, res, next){
// dummy database

var users = {
tj: { name: 'tj' }
tj: { name: 'tj' },
};

// when you create a user, generate a salt
Expand All @@ -54,21 +56,20 @@ hash({ password: 'foobar' }, function (err, pass, salt, hash) {
users.tj.hash = hash;
});


// Authenticate using our plain-object database of doom!

function authenticate(name, pass, fn) {
if (!module.parent) console.log('authenticating %s:%s', name, pass);
var user = users[name];
// query the db for the given username
if (!user) return fn(null, null)
if (!user) return fn(null, null);
// apply the same algorithm to the POSTed password, applying
// the hash against the pass / salt, if there is a match we
// found the user
hash({ password: pass, salt: user.salt }, function (err, pass, salt, hash) {
if (err) return fn(err);
if (hash === user.hash) return fn(null, user)
fn(null, null)
if (hash === user.hash) return fn(null, user);
fn(null, null);
});
}

Expand All @@ -81,47 +82,50 @@ function restrict(req, res, next) {
}
}

app.get('/', function(req, res){
app.get('/', function (req, res) {
res.redirect('/login');
});

app.get('/restricted', restrict, function(req, res){
app.get('/restricted', restrict, function (req, res) {
res.send('Wahoo! restricted area, click to <a href="/logout">logout</a>');
});

app.get('/logout', function(req, res){
app.get('/logout', function (req, res) {
// destroy the user's session to log them out
// will be re-created next request
req.session.destroy(function(){
req.session.destroy(function () {
res.redirect('/');
});
});

app.get('/login', function(req, res){
app.get('/login', function (req, res) {
res.render('login');
});

app.post('/login', function (req, res, next) {
if (!req.body) return res.sendStatus(400)
authenticate(req.body.username, req.body.password, function(err, user){
if (err) return next(err)
if (!req.body) return res.sendStatus(400);
authenticate(req.body.username, req.body.password, function (err, user) {
if (err) return next(err);
if (user) {
// Regenerate session when signing in
// to prevent fixation
req.session.regenerate(function(){
req.session.regenerate(function () {
// Store the user's primary key
// in the session store to be retrieved,
// or in this case the entire user object
req.session.user = user;
req.session.success = 'Authenticated as ' + user.name
+ ' click to <a href="/logout">logout</a>. '
+ ' You may now access <a href="/restricted">/restricted</a>.';
req.session.success =
'Authenticated as ' +
user.name +
' click to <a href="/logout">logout</a>. ' +
' You may now access <a href="/restricted">/restricted</a>.';
res.redirect(req.get('Referrer') || '/');
});
} else {
req.session.error = 'Authentication failed, please check your '
+ ' username and password.'
+ ' (use "tj" and "foobar")';
req.session.error =
'Authentication failed, please check your ' +
' username and password.' +
' (use "tj" and "foobar")';
res.redirect('/login');
}
});
Expand Down
2 changes: 1 addition & 1 deletion examples/content-negotiation/db.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
'use strict'
'use strict';

var users = [];

Expand Down
38 changes: 24 additions & 14 deletions examples/content-negotiation/index.js
Original file line number Diff line number Diff line change
@@ -1,28 +1,38 @@
'use strict'
'use strict';

var express = require('../../');
var app = module.exports = express();
var app = (module.exports = express());
var users = require('./db');

// so either you can deal with different types of formatting
// for expected response in index.js
app.get('/', function(req, res){
app.get('/', function (req, res) {
res.format({
html: function(){
res.send('<ul>' + users.map(function(user){
return '<li>' + user.name + '</li>';
}).join('') + '</ul>');
html: function () {
res.send(
'<ul>' +
users
.map(function (user) {
return '<li>' + user.name + '</li>';
})
.join('') +
'</ul>',
);
},

text: function(){
res.send(users.map(function(user){
return ' - ' + user.name + '\n';
}).join(''));
text: function () {
res.send(
users
.map(function (user) {
return ' - ' + user.name + '\n';
})
.join(''),
);
},

json: function(){
json: function () {
res.json(users);
}
},
});
});

Expand All @@ -32,7 +42,7 @@ app.get('/', function(req, res){

function format(path) {
var obj = require(path);
return function(req, res){
return function (req, res) {
res.format(obj);
};
}
Expand Down
30 changes: 20 additions & 10 deletions examples/content-negotiation/users.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,29 @@
'use strict'
'use strict';

var users = require('./db');

exports.html = function(req, res){
res.send('<ul>' + users.map(function(user){
return '<li>' + user.name + '</li>';
}).join('') + '</ul>');
exports.html = function (req, res) {
res.send(
'<ul>' +
users
.map(function (user) {
return '<li>' + user.name + '</li>';
})
.join('') +
'</ul>',
);
};

exports.text = function(req, res){
res.send(users.map(function(user){
return ' - ' + user.name + '\n';
}).join(''));
exports.text = function (req, res) {
res.send(
users
.map(function (user) {
return ' - ' + user.name + '\n';
})
.join(''),
);
};

exports.json = function(req, res){
exports.json = function (req, res) {
res.json(users);
};
10 changes: 5 additions & 5 deletions examples/cookie-sessions/index.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
'use strict'
'use strict';

/**
* Module dependencies.
Expand All @@ -7,16 +7,16 @@
var cookieSession = require('cookie-session');
var express = require('../../');

var app = module.exports = express();
var app = (module.exports = express());

// add req.session cookie support
app.use(cookieSession({ secret: 'manny is cool' }));

// do something with the session
app.get('/', function (req, res) {
req.session.count = (req.session.count || 0) + 1
res.send('viewed ' + req.session.count + ' times\n')
})
req.session.count = (req.session.count || 0) + 1;
res.send('viewed ' + req.session.count + ' times\n');
});

/* istanbul ignore next */
if (!module.parent) {
Expand Down
24 changes: 13 additions & 11 deletions examples/cookies/index.js
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
'use strict'
'use strict';

/**
* Module dependencies.
*/

var express = require('../../');
var app = module.exports = express();
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'))
if (process.env.NODE_ENV !== 'test') app.use(logger(':method :url'));

// parses request cookies, populating
// req.cookies and req.signedCookies
Expand All @@ -19,28 +19,30 @@ if (process.env.NODE_ENV !== 'test') app.use(logger(':method :url'))
app.use(cookieParser('my secret here'));

// parses x-www-form-urlencoded
app.use(express.urlencoded())
app.use(express.urlencoded());

app.get('/', function(req, res){
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>');
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){
app.get('/forget', function (req, res) {
res.clearCookie('remember');
res.redirect(req.get('Referrer') || '/');
});

app.post('/', function(req, res){
app.post('/', function (req, res) {
var minute = 60000;

if (req.body && req.body.remember) {
res.cookie('remember', 1, { maxAge: minute })
res.cookie('remember', 1, { maxAge: minute });
}

res.redirect(req.get('Referrer') || '/');
Expand Down
Loading