From 41946c6982647abec5d64b04323a081c73c43577 Mon Sep 17 00:00:00 2001 From: Kyle K Date: Sun, 1 Jul 2012 13:52:34 -0500 Subject: db2 with session and gzip --- db2.js | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 db2.js diff --git a/db2.js b/db2.js new file mode 100644 index 0000000..fcdc456 --- /dev/null +++ b/db2.js @@ -0,0 +1,96 @@ +/* creates users with name and password and is able to list them + * + * $ mongo; use nodejs1; db.getCollectionNames(), db.users.find(), db.users.remove(), db.users.drop() + * + */ + +var express = require('express'); +var RedisStore = require('connect-redis')(express); +var dburl = 'localhost/nodejs1'; +var collections = ['users']; +var db = require("mongojs").connect(dburl, collections); + +var app = express.createServer(); + +app.configure(function() { + app.use(express.logger('dev')); + app.use(express.favicon()); + app.use(express.compress()); /* gzip */ + app.use(express.bodyParser()); /* creates req,body which req.param() uses */ + app.use(express.cookieParser()); /* req.session can be populated with user defined vars */ + app.use(express.session({ secret: "keyboard cat", store: new RedisStore })); + app.use(app.router); +}); + +app.get('/', function(req, res) { + var views = 0; + if (req.session.views != 'undefined' && req.session.views) + views = req.session.views; + + res.send('\n' + + '\n' + + '\n' + + '

\n' + + ' create users here
\n' + + ' list users here
\n' + + 'this page has been viewed: ' + views + '\n' + + '

\n' + + '\n' + + '\n'); +}); + +app.get('/user', function(req, res) { + req.session.views++; + res.send('\n' + + '\n' + + '\n' + + '
\n' + + ' User:
\n' + + ' Password:
\n' + + ' \n' + + '
\n' + + '\n' + + '\n'); +}); + +app.post('/create', function(req, res) { + db.users.save({user: req.param('username'), pass: req.param('password')}, function(err, thing) { + if (err || !thing) + console.log('error saving'); + else + console.log('successfully saved'); + }); + res.redirect('/'); +}); + +app.get('/list', function(req, res) { + db.users.find(function(err, things) { + /* things should be array of structs heh */ + + if (err || !things) + console.log('nothing in db or error retrieving'); + else + { + var userlist = ''; + things.forEach(function(user) { + userlist = userlist + 'User: ' + user.user + '
Password: ' + user.pass + '
'; + }); + + res.send('\n' + + '\n' + + '\n' + + userlist + + '\n' + + '\n'); + } + + }); +}); + +app.listen(8081, function() { + console.log("listening on port %d in %s mode", this.address().port, this.settings.env); +}) +.on('error', function(e) { + console.log('failed creating server, errno: ' + e.errno); +}); + -- cgit v1.2.3