Advertisement
Guest User

Untitled

a guest
Nov 1st, 2014
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.84 KB | None | 0 0
  1. // Install dependencies with 'npm install'
  2. // Run as 'node level00.js'
  3.  
  4. var express = require('express'), // Web framework
  5.     mu = require('mu2'),          // Mustache.js templating
  6.     bodyParser = require('body-parser'),
  7.     sqlite3 = require('sqlite3'); // SQLite (database) driver
  8.  
  9. // Look for templates in the current directory
  10. mu.root = __dirname;
  11.  
  12. // Set up the DB
  13. var db = new sqlite3.Database('level00.db');
  14. db.run(
  15.   'CREATE TABLE IF NOT EXISTS secrets (' +
  16.     'key varchar(255),' +
  17.     'secret varchar(255)' +
  18.   ')'
  19. );
  20.  
  21. // Create the server
  22. var app = express();
  23. app.use(bodyParser());
  24.  
  25. function renderPage(res, variables) {
  26.   var stream = mu.compileAndRender('level00.html', variables);
  27.   res.header('Content-Type', 'text/html');
  28.   stream.pipe(res);
  29. }
  30.  
  31. app.get('/*', function(req, res) {
  32.   var namespace = req.param('namespace');
  33.  
  34.   if (namespace) {
  35.     var query = 'SELECT * FROM secrets WHERE key LIKE ? || ".%"';
  36.     db.all(query, namespace, function(err, secrets) {
  37.          if (err) throw err;
  38.  
  39.          renderPage(res, {namespace: namespace, secrets: secrets});
  40.        });
  41.   } else {
  42.     renderPage(res, {});
  43.   }
  44. });
  45.  
  46. app.post('/*', function(req, res) {
  47.   var namespace = req.body['namespace'];
  48.   var secret_name = req.body['secret_name'];
  49.   var secret_value = req.body['secret_value'];
  50.  
  51.   var query = 'INSERT INTO secrets (key, secret) VALUES (? || "." || ?, ?)';
  52.   db.run(query, namespace, secret_name, secret_value, function(err) {
  53.      if (err) throw err;
  54.  
  55.        res.header('Content-Type', 'text/html');
  56.        res.redirect(req.path + '?namespace=' + namespace);
  57.      });
  58. });
  59.  
  60. if (process.argv.length > 2) {
  61.   var socket = process.argv[2];
  62.   console.log("Starting server on UNIX socket " + socket);
  63.   app.listen(socket);
  64. } else {
  65.   console.log("Starting server at http://localhost:3000/");
  66.   app.listen(3000);
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement